3

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

4

1 回答 1

10

所有的 LINQ 方法实际上都是IEnumerable.

以下是 Reflector 将AnyLINQ 方法反编译为:

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;
}
于 2013-08-23T02:49:35.077 回答