LINQ的Any方法是否有效?

Jor*_*dan 2 linq

AnyLINQ中的方法是否迭代整个集合,或者在第一次成功迭代发生时返回true?

Jar*_*Par 6

Any方法仅迭代必要的最少数量的元素.一旦找到匹配的元素,它就会立即返回

它的大致实现如下

public static bool Any<T>(this IEnumerable<T> enumerable, Func<T, bool> predicate) {
  foreach (var cur in enumerable) {
    if (predicate(cur)) { 
      return true;
    }
  }
  return false;
}
Run Code Online (Sandbox Code Playgroud)

在最坏的情况下(无或最后匹配),它将访问所有元素.在最好的情况下(第一次匹配)它只会访问1