linq Any()如何在内部工作

时间:2013-08-23 02:36:21

标签: c# linq

我很想知道someCollection.Any()内部是如何工作的。 我怎么能看到这段代码?

1 个答案:

答案 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;
}