![]() |
1
33
在这种特殊情况下,它被转换为:
但可能会出现更复杂的情况,例如:
将转换为:
也就是说,
可能导致同一表达的三重评价。 更新 在评论中的问题之后。弗斯特 “街区表情”有什么可怕的?它们只是任意委托的简写。也就是说,下面的表达式:
相当于以下内容:
第二
那是什么
特殊的
关于“块表达式”?你知道吗,嗯…我们叫他们吧”
无阻塞
“表达式也扩展到非常相同的代码?也就是说,简单的代码
第三 那是什么 非直线运动 关于“块表达式”?Linq在整个地方都使用委托,而Linq使用什么确切的快捷方式来表示这些委托并不重要。
尤其是你的表情
第四 为了得到这样的理解,我们可以玩弄语言和思考。就是用大脑。 和第五 如果以前的建议因某种原因对您不起作用,您总是 ILSpy . 很有用的工具,每个人都应该有一个。 |
![]() |
2
8
看一看 LINQPad ,您可以编写查询并点击lamba符号来查看输出结果。例如,我接受了这个查询:
输出如下:
因此,它看起来确实像是将let转换为匿名的temp值,然后在外部select语句中使用。 我喜欢LinqPad,因为它能够编写查询并查看如何翻译。 |
![]() |
3
0
只是猜测一下,因为我很少使用查询语法:
let只是分配一个新的var v,select返回它。 如果您不想要一个包含v的anon对象,它也可能是如下所示:
|
![]() |
4
-1
一般来说,
|
![]() |
Imad · Linq扩展方法没有使用Object类的Equals 1 年前 |
![]() |
user8512043 · 根据每个元素中的数字对列表进行排序 2 年前 |
![]() |
Nick Fleetwood · 调度语法的LINQ查询 2 年前 |
![]() |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
![]() |
Drago · Linq通过比较Id和具有Id的对象列表来查询获取列表 2 年前 |