使用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;
Run Code Online (Sandbox Code Playgroud)
在上面的查询表达式中,let关键字允许将值传递给where和orderby操作,而无需重复调用animalName.Length.
什么是LINQ扩展方法调用的等效集合,它实现了"let"关键字在这里的作用?
我有这样一张桌子:
rowInt Value
2 23
3 45
17 10
9 0
....
Run Code Online (Sandbox Code Playgroud)
列rowInt值是整数,但不是具有相同增量的序列.我可以使用以下sql按rowInt列出值:
SELECT * FROM myTable ORDER BY rowInt;
Run Code Online (Sandbox Code Playgroud)
这将按rowInt列出值.如何获得两行之间的Value的差异,结果如下:
rowInt Value Diff
2 23 22 --45-23
3 45 -35 --10-45
9 0 -45 --0-45
17 10 10 -- 10-0
....
Run Code Online (Sandbox Code Playgroud)
该表在SQL 2005(Miscrosoft)中