linq Any()如何在内部工作

Bar*_*xto 3 c# linq

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

Kar*_*son 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;
}
Run Code Online (Sandbox Code Playgroud)

  • @anthony-arnold 看看 Math.Abs​​() 然后你就会:D (2认同)