我有以下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
};
Run Code Online (Sandbox Code Playgroud)
我记得看到一个lambda速记,用于对commission每一行的字段进行求和q.总结这个最好的方法是什么?除了手动循环结果?
这很简单 - 无需在代码中循环:
var totalCommission = q.Sum(result => result.commission);
Run Code Online (Sandbox Code Playgroud)
请注意,如果您要使用q各种不同计算的结果(这似乎是一个合理的假设,就好像您只想要总佣金我怀疑您要选择其他位),您可能想要实现查询一旦这样它就不需要多次进行所有过滤和投射.这样做的一种方法是使用:
var results = q.ToList();
Run Code Online (Sandbox Code Playgroud)
这将为List<T>您的匿名类型创建一个- 您仍然可以Sum在results此处使用上面的代码.