我很想知道一些集合的Any()方法是如何实现的,我该如何查看这段代码?
我很想知道一些集合的Any()方法是如何实现的,我该如何查看这段代码?
所有的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;
}