我很想知道someCollection.Any()内部是如何工作的。 我怎么能看到这段代码?
答案 0 :(得分:10)
所有LINQ方法实际上都是IEnumerable
的扩展方法。
这是Reflector将Any
LINQ方法反编译为:
public static bool Any<TSource>(this IEnumerable<TSource> source,
Func<TSource, bool> predicate)
{
if (source == null)
{
throw Error.ArgumentNull("source");
}
if (predicate == null)
{
throw Error.ArgumentNull("predicate");
}
foreach (TSource local in source)
{
if (predicate(local))
{
return true;
}
}
return false;
}