使用C#编译器查询理解功能,您可以编写如下代码:
var names = new string[] { "Dog", "Cat", "Giraffe", "Monkey", "Tortoise" };
var result =
from animalName in names
let nameLength = animalName.Length
where nameLength > 3
orderby nameLength
select animalName;
在上面的查询表达式中,let
关键字允许将值转发给where和orderby操作,而无需重复调用animalName.Length
。
什么是LINQ扩展方法调用的等效集合,可以实现此处的“ let”关键字呢?
11
仅供参考,C#3.0规范非常详细地解释了每个查询理解转换规则。
—
埃里克·利珀特
对于那些发现规范不符合要求的人,乔恩·斯基特(Jon Skeet)的C#in Depth也涵盖了该问题;-p
—
马克·
C#语言规范是可下载的Word文档,其内容不会被搜索引擎索引,也无法在线链接和浏览。如果可以在线获得规格,那将是很大的帮助。
—
奥利维尔·雅各布·德斯科姆斯