提问者:小点点

最快的方法是什么来找到两个列表之间是否有交集?


我写了一个代码来检查两个列表之间的交集。我只需要有交集。有没有更快的方法。

L,L2 are List<int>

bool working = true;

bool ok=false;
for (int k = 0; k<L.Count && working;k++) {
   if (L2.Any (a => a == L[k])) {
      ok=true;//There is an integer in L and   L2
      working=false;
   }
}

共1个答案

匿名用户

不确定我是否忽略了什么,但通常使用intersect+any:

bool intersects = L.Intersect(L2).Any();

如果列表中的类型重写equalsgethashcode(就像大多数.NET类所做的那样),则此操作有效。如果您使用自己的,您应该记住这一点,否则只会比较引用。