IEnumerable.Any(Func)何时返回值?

And*_*ray 2 c# linq performance ienumerable lambda

我最近在我使用的代码库中看到了一些代码,ReSharper提供了重构代码collection.Any(Func< bool >).

我想知道这对性能的影响.假设我有一个看起来像这样的电话:

bool hasEvenValue = collection.Any(i => (i % 2) == 0);

......以及看起来像这样的数据......

{ 1, 2, 3, 5, 3, 5, 1, 3, 5, 2 }

Enumerable.Any()何时返回值?在这种情况下,第二个数据元素,还是会在返回true之前处理每个元素

usr*_*usr 5

它会在看到匹配元素时立即返回,或者如果没有则处理整个序列.

因此,它比使用更好.Count(...) != 0(也更具可读性和语义意义).