日期:2014-05-20  浏览次数:20872 次

linq to object
有1个
list<类名> A=new list<类名>
里面有 很多个属性 已经为其中1个属性,ID 赋过值了  

现在我有1个DataTable dt
我想用循环 使A.ID的值和dt里的ID匹配 。。然后把剩余的值给赋上去。。额 请大神们帮忙了

------解决方案--------------------
第一个 例如把table dt中 test 字段 给Class A中的属性 name 赋值 
A.ForEach(e =>
e.name = (from t in dt.AsEnumerable()
where t.Field<int>("ID") == e.ID
select t.Field<string>("test")).FirstOrDefault()
);

依次,不过个人感觉 效率可能不高....
------解决方案--------------------
C# code

DataTable dt = XXX();
List<Book> A=new List<Book>();

for(int i=0;i<dt.Rows.Count;i++)
{
   foreach(Book book in A)
   {
        if(int.Parse(dt.Rows[i]["ID"].ToString())==book.ID)
        {
                book.Name = dt.Rows[i]["Name"].ToString();
                //实体类中的其他字段自己相应赋值即可
        }
   }
}

------解决方案--------------------
探讨
有1个
list<类名> A=new list<类名>
里面有 很多个属性 已经为其中1个属性,ID 赋过值了

现在我有1个DataTable dt
我想用循环 使A.ID的值和dt里的ID匹配 。。然后把剩余的值给赋上去。。额 请大神们帮忙了