如何比较两个列表并创建匹配的另一个列表?

Jas*_*son 2 c# linq

我有以下两个清单:

IEnumerable<bool> a =      True True True False
List<bool> b = True True False False
Run Code Online (Sandbox Code Playgroud)

如果list a和list b的元素匹配,我需要创建另一个显示true的列表.列表a和b将始终填充并具有相同数量的元素.例如,输出将是:

List<bool> c = True True False True
Run Code Online (Sandbox Code Playgroud)

有一种简单的方法可以做到这一点吗?我必须使用LINQ吗?我想我可以通过一个数组进行迭代,但我希望有一个更简单的方法.

Chr*_*ich 6

如果您使用的是.NET 4,则可以使用LINQ IEnumerable.Zip将两个列表"压缩"到第三个结果列表中.Zip对两个列表中的协调元素进行操作以生成第三个列表.

第二个参数是定义您要对每对元素执行的操作的函数.

var c = a.Zip(b, (p, q) => p == q).ToList();
Run Code Online (Sandbox Code Playgroud)