DataTable转化为LIST

jj2762290 2016-06-21 09:30:47
有没有什么办法,不确定T类型的情况下把一个datatable转list的方法?换句话说,我随便给你一个DataTable,列数不确定,列名也不确定,转成list,百度查的全都是先写好T类型然后去判断列名是否存在T的属性。
...全文
235 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2016-06-21
  • 打赏
  • 举报
回复
当然可以,不过你不知道列名,转换后只能用下标访问了
            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 的明确信息
jj2762290 2016-06-21
  • 打赏
  • 举报
回复
引用 3 楼 starfd 的回复:
List<dynamic>
查下DynamicObject
谢谢。。我去学习一下。。实际上是这样的,我把一系列对象的属性值导出为Excel.如姓名,性别,班级,分数等等。现在在Excel中把他的分数的值做了修改要在导回到对象做修改。所以这中间怎么实现对应张三的分数修改到张三对象呢?
正怒月神 2016-06-21
  • 打赏
  • 举报
回复
用dynamic 和3楼一样
  • 打赏
  • 举报
回复
List<dynamic>
查下DynamicObject
jj2762290 2016-06-21
  • 打赏
  • 举报
回复
引用 1 楼 guwei4037 的回复:
http://bbs.csdn.net/topics/391879621
版主大大,你给的链接还是要先定义 T的类型 啊。。问题是我事先并不知道T的类型。。那怎么将datatable转化为List呢?
全栈极简 2016-06-21
  • 打赏
  • 举报
回复

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧