< 返回技术文档列表

Linq中如何使用foreach语句

发布时间:2021-09-01 02:30:02⊙投诉举报

这篇文章给大家介绍Linq中如何使用foreach语句,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

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

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

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

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

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

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

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

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

List<int> numQuery2 =  (from num in numbers  where (num % 2) == 0  select num).ToList();   //or like this:  //numQuery3 is still an int[]   var numQuery3 =  (from num in numbers  where (num % 2) == 0  select num).ToArray();

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

关于Linq中如何使用foreach语句就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


/template/Home/Zkeys/PC/Static