0

我有一个已经从数据库中填充的通用列表 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;
                    -----
                }
            }

使用此循环,列表中所有行中的所有字段值都会得到更新,而不是索引的值。

4

1 回答 1

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;
    }
}

这可能不是最快的方式,但它非常快并且易于阅读/维护。

于 2013-08-01T18:32:51.923 回答