【问题标题】:LINQ: DataTable to List [duplicate]LINQ:要列出的数据表 [重复]
【发布时间】:2014-01-09 02:41:35
【问题描述】:

如何实现下面的数据表到通用列表的转换?

我正在尝试这个:

List<Emp> lstEmp= new List<Emp>(from prod in MyDatatable.AsEnumerable<Emp>() select prod);

【问题讨论】:

  • @huMptyduMpty:但 Jon Skeets 的回答没有回答这个问题。 OP 想要从 DataRow 初始化一个自定义类并创建一个 List
  • @TimSchmelter:不是 Jons 的答案……还有其他答案可以做到这一点!

标签: c# linq


【解决方案1】:
var empList = MyDatatable.AsEnumerable().Select( row => 
   new Emp
   {
       Name= row.Field<string>("Name") // set the properties accordingly 
   }).ToList();

【讨论】:

  • 我不想这样做:Name= row["Name"].ToString()..直接转换的任何可能性?
  • @user2519971 检查我的更新,谢谢蒂姆
【解决方案2】:

试试这个,

List<Emp> target = dt.AsEnumerable()
     .Select(row => new Emp
     {
         Name = row.Field<string>("Name")
     }).ToList();

【讨论】:

  • 实际上是否真的需要指定每个字段。如果 LINQ 可以做到这一点,我想跳过这个。只是为了避免每个字段都这样做: Name= row.Field("Name") OR Name = String.IsNullOrEmpty(row.Field(1))...
  • 你也可以使用文件名,而不是(1)。
猜你喜欢
  • 1970-01-01
  • 2013-08-03
  • 1970-01-01
  • 2015-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-05
相关资源
最近更新 更多