检查两个列表是否有碰撞元素?

时间:2010-09-10 06:53:20

标签: c# .net list collections

有没有办法检查一个列表是否与另一个列表发生冲突?例如:

    bool hit=false;
    foreach(var s in list2)
    {
        if (list1.Contains(s))
        {
            hit = true;
            break;
        }
    }
    if (!hit)
    {

3 个答案:

答案 0 :(得分:36)

.NET有许多可用于枚举的设置操作,因此您可以使用the set intersection在两个列表中查找成员。使用Any()查看结果序列是否有任何条目。

E.g。

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

答案 1 :(得分:3)

您可以随时使用linq

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

答案 2 :(得分:2)

如果您能够使用Linq,请if(list1.Intersect(list2).Count > 0) {...collision...}