Linq 操作DataTable

来源:互联网 发布:hycad软件使用视频 编辑:程序博客网 时间:2024/04/30 22:01
class ClientStruct          {              public string ID = "ID";              public string Name = "Name";              public string Company = "Company";              public string CreatedDate = "CreatedDate";          }  


public string[,] infoArr = new string[,] { { "1", "百度", "baidu", "201303" }, { "2", "迅雷", "xunlei", "201302" }, { "3", "谷歌", "guge", "201301" } };  

protected void LinqDataTable()          {              DataRow row;              ClientStruct cs = new ClientStruct();              DataTable dtTable = new DataTable();              dtTable.Columns.Add(cs.ID);              dtTable.Columns.Add(cs.Name);              dtTable.Columns.Add(cs.Company);              dtTable.Columns.Add(cs.CreatedDate);              for (int i = 0; i < 3; i++)              {                  row = dtTable.NewRow();                  row[cs.ID] = infoArr[i, 0];                  row[cs.Name] = infoArr[i, 1];                  row[cs.Company] = infoArr[i, 2];                  row[cs.CreatedDate] = infoArr[i, 3];                  dtTable.Rows.Add(row);              }                //遍历DataTable,取出所有的ID              List<string> lstID = (from d in dtTable.AsEnumerable()                                    select d.Field<string>(cs.ID)).ToList<string>();                //遍历DataTable,将其中的数据对应到ClientStruct中:              List<ClientStruct> list = (from x in dtTable.AsEnumerable()                                         orderby x.Field<string>(cs.Company)                                         select new ClientStruct                                         {                                             ID = x.Field<string>(cs.ID),                                             Name = x.Field<string>(cs.Name),                                             Company = x.Field<string>(cs.Company),                                             CreatedDate = x.Field<string>(cs.CreatedDate)                                         }).ToList<ClientStruct>();                //遍历DataTable,并将上面的List结果存储到Dictionary中:              Dictionary<string, ClientStruct> dic = list.ToDictionary(p => p.Company);              //p作为string键值来存储          }  

其实关键是AsEnumerable()方法,返回一个 System.Collections.Generic.IEnumerable<T> 对象