我有以下LINQ查询:
var q = from bal in data.balanceDetails
where bal.userName == userName && bal.AccountID == accountNumber
select new
{
date = bal.month + "/" + bal.year,
commission = bal.commission,
rebate = bal.rebateBeforeService,
income = bal.commission - bal.rebateBeforeService
};
我记得看过lambda简写,用于汇总commission
每一行的q
字段。
总结这个最好的方法是什么?除了手动循环结果?
答案 0 :(得分:9)
这很简单 - 无需在代码中循环:
var totalCommission = q.Sum(result => result.commission);
请注意,如果您要将q
的结果用于各种不同的计算(这似乎是一个合理的假设,就好像您只想要总佣金一样,我怀疑您是否会选择其他位)可能想要实现查询一次,这样就不需要多次进行所有过滤和预测。这样做的一种方法是使用:
var results = q.ToList();
这将为您的匿名类型创建List<T>
- 您仍然可以在Sum
上使用上面的results
代码。