延迟查询--LINQ

1.LINQ查询使用的是延迟查询的方法,以便提高效率

 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,所以编译器会创建一个枚举器,在访问枚举项后,返回他们。

所以,执行LINQ时,不会立即查询结果,而是在使用结果时进行查询。

但是,如果使用了ToArray、ToList方法就会立即查询结果,并返回结果集 

 

posted @ 2017-11-12 18:55  fight139  阅读(154)  评论(0编辑  收藏  举报