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

标签 c# linq

我有以下两个列表:

IEnumerable<bool> a =      True True True False
List<bool> b = True True False False

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

List<bool> c = True True False True

有没有简单的方法可以做到这一点?我必须使用 LINQ 吗?我想我可以通过遍历一个数组来做到这一点,但我希望有一种更简单的方法。

最佳答案

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

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

var c = a.Zip(b, (p, q) => p == q).ToList();

关于c# - 我如何比较两个列表并创建另一个匹配的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7213271/

相关文章:

c# - 如何在 Windows Phone 8.1 中以正确的旋转、宽高比拍摄照片? (使用媒体捕捉)

c# - 将多个用户输入添加到列表 c#

c# - 使用 LINQ 断言数组的所有成员都是等效的?

c# - 有条件地应用 Where(或在它们之间)LINQ

c# - 使用 LINQ Contains 或其他搜索多个字段

c# - 使用 Webbrowser C# 从 iframe 读取 HTML 代码

c# - ACE.OLEDB 提供程序错误地读取了一些列名称

c# - MVC Azure无法找到具有默认路由的 View 或主控,但可以在本地工作

c# - 是否可以在 linq where 中使用 OfType?

linq - 不同的查询?