首页 > 代码库 > 表中某列的所有值转成List泛型集合
表中某列的所有值转成List泛型集合
代码如下:
//表dt中含有字段名称列 List<string> fieldList = dt.AsEnumerable().Select(t => t.Field<string>("字段名称")).ToList<string>();
//还可以
List<string> fieldList2=(from d in dt.AsEnumerable() select d.Field<string>("字段名称")).ToList<string>();
其中dt.AsEnumerable()得到datarow的集合,对于DataRow有一个Field<T>("列名")的方法:dr.Field<string>("字段名称"),得到字符串类型的值。
扩展:Lambda表达式和Linq
class Program { static void Main(string[] args) { LinqDataTable(); } public static string[,] infoArr = new string[,] { { "1", "百度", "baidu", "201303" }, { "2", "迅雷", "xunlei", "201302" }, { "3", "谷歌", "guge", "201301" } }; protected static 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>(); //第二种: List<string> allId = dtTable.AsEnumerable().Select(d => d.Field<string>("ID")).ToList(); //遍历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>(); //第二种: List<ClientStruct> list2 = dtTable.AsEnumerable().OrderBy(o => o.Field<string>(cs.Company)).Select(x => 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键值来存储 } } /*遍历DataTable*/ class ClientStruct { public string ID = "ID"; public string Name = "Name"; public string Company = "Company"; public string CreatedDate = "CreatedDate"; }
表中某列的所有值转成List泛型集合
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。