码迷,mamicode.com
首页 > 其他好文 > 详细

LINQ学习系列-----2.3 迭代器带来的延迟查询

时间:2017-11-29 22:43:58      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:logs   2.3   html   第一个   rom   执行   加载   资源   sel   


             此篇博文承接上一篇博文:

                      LINQ学习系列-----2.2 迭代器

             一.第一次执行

                     废话不多说,上源码:

                           技术分享图片

                      执行结果下图:

                                技术分享图片

                    为什么会这样?其实原因很简单 from n in intArray select Square(n) 可以翻译为:Enumerable.Select<int,double>(intArray,n=>Square(n));

                    看过上一篇文章的基本信息知道一些了,Enumerable.Select就是个迭代器,这也是延迟查询的奥秘。

                    这个查询变量代表的并不是查询的结果,而更像是一个潜在的执行查询过程。直到该查询变量被赋值给另一个变量,查询才一步步开始执行。

           二.延迟查询的优点

                    1.节约资源

                            知道我们需要迭代访问查询结果的时候,某个查询的所要操作的数据源才会开始访问。假设我们查询的结果返回几千个元素,若是在处理完第一个元素后就不需要处理后面的元素,那么这些后续的元素就不会被加载到内存中。

               2.延迟查询我们可以将查询的定义和使用分开放在不同的地方,我们甚至可以在需要时多次使用某个已经定义好的查询。

LINQ学习系列-----2.3 迭代器带来的延迟查询

标签:logs   2.3   html   第一个   rom   执行   加载   资源   sel   

原文地址:http://www.cnblogs.com/xiaowangzi1987/p/7922996.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!