2013-08-23 2 views
1

Я заинтригован, чтобы узнать, как работает someCollection.Any(). Как я могу увидеть этот код?Как работает linq Any() внутри?

+1

http://www.codeproject.com/Articles/383749/How-does-it-work-in-Csharp-Part-3 -Csharp-LINQ-in-d # paraIdAny – gunr2171

+1

И вы всегда можете получить полный исходный код .net: http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library- source-code-now-available.aspx – gunr2171

ответ

7

Все методы LINQ на самом деле являются методами расширения IEnumerable.

Вот что Отражатель декомпилирует метод 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; 
} 
+0

Я был бы озадачен, если бы сделал что-нибудь еще. – Anthony

+1

@ anthony-arnold взгляните на Math.Abs ​​(), а затем: D –

Смежные вопросы