延遲查詢--LINQ

1.LINQ查詢使用的是延遲查詢的方法,以便提升效率this

 1 public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source,
 2     Func<TSource,bool> predicate)
 3 {
 4     foreach (TSource item in source)
 5     {
 6         if (predicate(item))
 7         {
 8             yield return item;
 9         }
10     }
11 }

由於使用yield return,因此編譯器會建立一個枚舉器,在訪問枚舉項後,返回他們。spa

因此,執行LINQ時,不會當即查詢結果,而是在使用結果時進行查詢。code

可是,若是使用了ToArray、ToList方法就會當即查詢結果,並返回結果集 blog

相關文章
相關標籤/搜索