比较c#中2个列表中的项目

问题描述 投票:0回答:3

我有两个目前正在使用的列表。我需要将列表中的项目相互比较,但我不想将每个项目与其他项目进行比较,只需要在相应列表中位于相同索引位置的项目。

所以它可能看起来像:

List1.item1 == List2.item1
List1.item2 == List2.item2
List1.item3 == List2.item3

并为每个人返回true或false。我打算使用foreach循环,但我无法弄清楚如何同时遍历两个列表,比较一路走来。我现在没有任何代码可以分享,因为我不知道从哪里开始。可以使用任何帮助来查找资源或代码示例。

谢谢

c# list compare iteration
3个回答
3
投票

使用Zip扩展方法。

var result = firstList.Zip(secondList, (a, b) => a == b);

1
投票
for (int i = 0; i < List1.Count; i++) //iterate over each possible index
{
    if (List1[i] == List2[i])
    {
        //do something
    }
}

您应该处理List1List2没有相同数量的项目的情况,例如:i < Math.Min(List1.Count, List2.Count),所以不要在某些列表中超出边界。


0
投票

另一个选择,你可以使用except扩展。

var difference = collection.Except(samples).ToList();

与zip类似,但返回列表之间的差异。不确定这是否适用于您的方案,但它确实运行良好。

© www.soinside.com 2019 - 2024. All rights reserved.