为了账号安全,请及时绑定邮箱和手机立即绑定

LINQ 为什么要延迟执行?

LINQ 为什么要延迟执行?

饮歌长啸 2019-04-08 11:19:18
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()在语义上来讲就是当下的即时最终操作。
                            
查看完整回答
反对 回复 2019-04-08
  • 2 回答
  • 0 关注
  • 342 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号