如果这是一个明显的问题,我道歉,但我找不到答案。
说我有以下内容:
var list1 = new List<int>{1,2,3};
var list2 = new List<int>{3,5,6};
如何查看list2中是否包含list1的任何元素?所以在这种情况下我想返回true,因为3都在。
执行嵌套循环对我来说不起作用,所以如果有:
,它将是理想的list1.HasElementIn(list2);
答案 0 :(得分:12)
使用Enumerable.Intersect - 它会产生两个序列的交集。如果交集不为空,那么两个序列中都存在一些项目:
bool isAnyItemInBothLists = list1.Intersect(list2).Any();
有一点需要注意 - 因此Intersect是deferred streaming operator,那么只要找到任何常见项目,您就会得到结果。所以,你不需要等到计算完整的交叉点。