我有一个类似的课程
class Person(){
int Id;
string Name;
string SomePersonalInfo;
}
和一个数据表,其列为Id,Name和SomePersonalInfo。我还在列表中有一个收集数据的集合。
List<Person> = new Id = 1, Name = "So So"
List<Person> = new Id = 1, SomePersonalInfo= "Something"
我正在尝试使用linq,因此我没有为每个语句添加多个,以便在数据表中添加Name和SomePersonalInfo,或者像继续获取数据流一样采取不必要的步骤。任何建议
答案 0 :(得分:1)
如果你已经有一个强类型列表,为什么你想要一个松散类型的DataTable
?此外,没有DataTable
通过LINQ查询创建DataRow
没有foreach(Person p in persons)
tblPerson.Rows.Add(p.Id, p.Name, p.SomePersonalInfo);
的好方法。
因此我只想使用一个可读且高效的循环:
Enumerable.Join
更新 acc。评论:
不,我已经有了数据表我只是想更新 来自集合的数据表
然后你必须首先找到交集,使用var inBoth = from p in persons
join row in tblPersons.AsEnumerable()
on p.Id equals row.Field<int>("Id")
select new { Person = p, Row = row };
foreach(var b in inBoth)
{
b.Row.SetField("Name", b.Person.Name);
b.Row.SetField("SomePersonalInfo", b.Person.SomePersonalInfo);
}
:
{{1}}