相关疑难解决方法(0)

410
推荐指数
10
解决办法
17万
查看次数

代码相当于链式LINQ扩展方法调用中的'let'关键字

使用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"关键字在这里的作用?

c# linq extension-methods linq-to-objects

186
推荐指数
3
解决办法
5万
查看次数

如何为列字段获取两行之间的差异?

我有这样一张桌子:

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)中

sql t-sql sql-server sql-server-2005

55
推荐指数
4
解决办法
19万
查看次数