我有一个已经填充的通用列表LIST AList,来自数据库。 我有另一个通用列表List BList,它通过读取平面文件来填充。 我试图根据一些字段比较两个列表
更新,我使用以下基本for循环:
for (int i = 0; i < AList.Count; i++)
{
if (AList[i].Someval== BList[i].Someval)
{
AList[i].Value1 = BList[i].SomeValue;
-----
}
}
使用此循环,列表中所有行中字段的所有值都将更新,而不是索引的值。
答案 0 :(得分:1)
在.NET 4.0中,您可以这样做:
var listA = GetGenericListA();
var listB = GetGenericListB();
var listAandB = listA.Zip(listB, (a, b) => new {a, b} );
foreach (var item in listAandB)
{
if (item.a.Somefield == item.b.SomeFieldb)
{
item.a.firstData = item.b.someData;
item.a.secondData = item.b.someotherField;
}
}
这可能不是最快的方式,但速度非常快,而且易于阅读/维护。