C#检查列表中的任何int是否与另一个列表中的任何int匹配

时间:2014-01-24 21:05:13

标签: c# list

如果这是一个明显的问题,我道歉,但我找不到答案。

说我有以下内容:

var list1 = new List<int>{1,2,3};
var list2 = new List<int>{3,5,6};

如何查看list2中是否包含list1的任何元素?所以在这种情况下我想返回true,因为3都在。

执行嵌套循环对我来说不起作用,所以如果有:

,它将是理想的
list1.HasElementIn(list2);

1 个答案:

答案 0 :(得分:12)

使用Enumerable.Intersect - 它会产生两个序列的交集。如果交集不为空,那么两个序列中都存在一些项目:

bool isAnyItemInBothLists = list1.Intersect(list2).Any();

有一点需要注意 - 因此Intersect是deferred streaming operator,那么只要找到任何常见项目,您就会得到结果。所以,你不需要等到计算完整的交叉点。