通过与另一个列表(不同的类)进行比较来更新泛型列表中的值

本文关键字:列表 比较 更新 泛型 另一个 | 更新日期: 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;
    }
}

这可能不是最快的方法,但它很快,而且很容易阅读/维护。