有没有什么办法,不确定T类型的情况下把一个datatable转list的方法?换句话说,本人随便给你一个DataTable,列数不确定,列名也不确定,转成list,百度查的全都是先写好T类型然后去判断列名能否存在T的属性。
解决方案
10
List<dynamic>
查下DynamicObject
10
用dynamic
和3楼一样
和3楼一样
20
当然可以,不过你不知道列名,转换后只能用下标访问了
例
例
DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("id", typeof(System.Int32))); dt.Columns.Add(new DataColumn("name", typeof(System.String))); dt.Columns.Add(new DataColumn("address", typeof(System.String))); dt.Rows.Add(1, "Dylan", "SZ"); dt.Rows.Add(2, "Jay", "TW"); dt.Rows.Add(3, "CQ", "HK"); var q = (from x in dt.AsEnumerable() select x.ItemArray).ToList(); foreach (var r in q) { for (int i = 0; i < r.Length; i++) { Console.Write(" {0}", r[i]); } Console.WriteLine(""); }
第 10 行开始的代码中,并不需要知道 DataTable 的明确信息