通过与另一个列表(不同的类)进行比较来更新泛型列表中的值
本文关键字:列表 比较 更新 泛型 另一个 | 更新日期: 2023-09-27 18:25:47
我有一个已经从数据库中填充的泛型列表list AList。我有另一个通用列表列表BList,它是通过读取平面文件来填充的。我正试图根据一些字段来比较这两个列表
更新,我使用以下基本的循环:
for (int i = 0; i < AList.Count; i++)
{
if (AList[i].Someval== BList[i].Someval)
{
AList[i].Value1 = BList[i].SomeValue;
-----
}
}
通过这个循环,列表中所有行中字段的所有值都将更新,而不是索引的值。
在.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;
}
}
这可能不是最快的方法,但它很快,而且很容易阅读/维护。