我有这个查询:
return (from r in this.Requests where r.Status == "Authorised" from i in r.Items select i).Sum(i => i.Value);
Run Code Online (Sandbox Code Playgroud)
我尝试将它转换为lambda,因为我现在更喜欢它,所以我做了:
var sum = Requests.Where(x=>x.Status == "Authorised").Select(x=>x.Items).Sum(x=>x.Value);- >这里我没有Value物品,任何想法为什么?
你需要SelectMany而不是Select.您的查询基本上相当于:
return this.Requests
.Where(r => r.Status == "Authorised")
.SelectMany(r => r.Items)
.Sum(i => i.Value);
Run Code Online (Sandbox Code Playgroud)
请注意,您的原始查询在多行上也会更清晰......
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |