Linqforeach语句概述

Linq 有很多值得学习的地方,这里我们主要介绍Linq foreach语句,包括介绍foreach循环来强制执行查询等方面。

成都创新互联专注于月湖企业网站建设,响应式网站,商城网站建设。月湖网站建设公司,为月湖等地区提供建站服务。全流程按需定制设计,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务

实际的查询执行会延迟到在Linq foreach语句中循环访问查询变量时发生。此概念称为“延迟执行”,下面的示例对此进行了演示:

 
 
 
  1. //Query execution. 
  2. foreach (int num in numQuery)
  3. {
  4. Console.Write("{0,1} ", num);
  5. }

Linq foreach语句也是检索查询结果的地方。例如,在上一个查询中,迭代变量 num 保存了返回的序列中的每个值(一次保存一个值)。

由于查询变量本身从不保存查询结果,因此可以根据需要随意执行查询。例如,可以通过一个单独的应用程序持续更新数据库。在应用程序中,可以创建一个检索***数据的查询,并可以按某一时间间隔反复执行该查询以便每次检索不同的结果。

对一系列源元素执行聚合函数的查询必须首先循环访问这些元素。Count、Max、Average 和 First 就属于此类查询。由于查询本身必须使用 foreach 以便返回结果,因此这些查询在执行时不使用显式Linq foreach语句。另外还要注意,这些类型的查询返回单个值,而不是 IEnumerable 集合。下面的查询返回源数组中偶数的计数:

 
 
 
  1. var evenNumQuery = 
  2. from num in numbers
  3. where (num % 2) == 0
  4. select num;
  5. int evenNumCount = evenNumQuery.Count();

若要强制立即执行任意查询并缓存其结果,可以调用 ToList<(Of <(TSource>)>) 或 ToArray<(Of <(TSource>)>) 方法。

 
 
 
  1. List numQuery2 =
  2. (from num in numbers
  3. where (num % 2) == 0
  4. select num).ToList();
  5. //or like this:
  6. //numQuery3 is still an int[]
  7. var numQuery3 =
  8. (from num in numbers
  9. where (num % 2) == 0
  10. select num).ToArray();

此外,还可以通过在紧跟查询表达式之后的位置放置一个 foreach 循环来强制执行查询。但是,通过调用 ToList 或 ToArray,也可以将所有数据缓存在单个集合对象中。

网站标题:Linqforeach语句概述
标题网址:http://www.mswzjz.cn/qtweb/news5/226705.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能