int[]scores={10,90,100,30,70,29,45};varhighScoresQuery=fromscoreinscoreswherescore>80orderbyscoredescendingselectscore;上面这段代码会延迟执行,如果使用聚合函数,如:.Count()就会立即执行。为什么要这么做,好处是什么?为什么Count()不采用延迟执行呢?
2 回答
慕少森
TA贡献2019条经验 获得超9个赞
Lambda表达式只是语法糖,从动态语言借鉴过来,但作为C#静态语言其本质操作并没有改变。正如楼上所言,你可能在多个地方动态改变了查询语句,但编译器只在你执行最终操作的时候才将Lambda表达试“翻译”为最终执行的C#或SQL代码。我理解Count()和ToList()在语义上来讲就是当下的即时最终操作。
添加回答
举报
0/150
提交
取消
