我找到了一个示例代码,其中lambda使用如下代码
var sumOfgreaterThanSeven = numbers.Sum(n => n > 7 ? n : 0);
Run Code Online (Sandbox Code Playgroud)
但上面的代码可以写成
var sumOfgreaterThanSeven = numbers.Sum(n > 7 ? n : 0);
Run Code Online (Sandbox Code Playgroud)
那么为什么用户写lambda.请帮助我理解为什么用户在这里写lambda.还告诉我lambda的优点是什么.谢谢
Mar*_*ell 12
lambda是因为你想要评估每个项目n的条件表达式.您添加的版本(Sum(n > 7 ? n : 0))无法工作 - n未在任何地方定义(编译器消息应为"名称'n'在当前上下文中不存在").
lambda可以理解为:
给定一个术语
n,ifn大于7returnn,否则返回0
然后总结那个逻辑.
重新优势 - 首先是方便 - 还有构图.例如,使用LINQ-to-SQL,我绝对希望能够发出如下内容:
select sum(case when row.col > 7 then row.col else 0 end)
from sometable row
Run Code Online (Sandbox Code Playgroud)
当然,最好使用:
var sumOfgreaterThanSeven = numbers.Where(n => n > 7).Sum();
Run Code Online (Sandbox Code Playgroud)
哪个会映射到
select sum(row.col)
from sometable row
where row.col > 7
Run Code Online (Sandbox Code Playgroud)
这可能会更准确地击中指数
| 归档时间: |
|
| 查看次数: |
364 次 |
| 最近记录: |