在.net中,可以写:
(from n in numbers where n == 5 select n).ToList();
Run Code Online (Sandbox Code Playgroud)
如果没有这些括号,则无法调用ToList()方法.我怎么能向某人解释这条线的作用(我可以说它是预编译查询,但我不知道这实际上是100%正确).
from n in numbers where n = 5 select n实际上是语法糖numbers.Where(n => n == 5).因此,您使用LINQ表达式将数字列表过滤为等于5的数字.
然而,LINQ评估懒惰.这意味着numbers.Where(n => n == 5)(一个IEnumerable)返回的对象不是 等于五的数字列表.仅在需要时创建列表,即,在尝试访问IEnumerable的元素时.
ToList 将此IEnumerable的内容复制到列表中,这意味着必须立即评估表达式.
| 归档时间: |
|
| 查看次数: |
180 次 |
| 最近记录: |