两个列表是否有交集的检查?

30
有没有一种方法可以检查一个列表是否与另一个列表发生冲突?例如:
    bool hit=false;
    foreach(var s in list2)
    {
        if (list1.Contains(s))
        {
            hit = true;
            break;
        }
    }
    if (!hit)
    {

这个回答解决了你的问题吗?检查两个集合中是否存在任何元素 - StayOnTarget
3个回答

52

.NET有许多用于枚举的集合操作,因此您可以使用集合交集来查找两个列表中的成员。 使用Any()来查找生成的序列是否有任何条目。

例如:

if(list1.Intersect(list2).Any()) 

2

你总是可以使用 Linq

if (list1.Intersect(list2).Count() > 0) ...

6
请记住,Count() 可能需要枚举整个序列。请使用 Any() 替代。 - Brian Rasmussen

1
如果您能使用 Linq,那么可以使用以下代码检测两个列表是否有重叠项目:if(list1.Intersect(list2).Count > 0) {...collision...}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接