我的lambda表达式:
lst.Add(qry.Where(item => item.Type == "Gundalac")
.Aggregate(new CDetails(), (accumulator, item) => new CDetails {
Des = "CATALOG",
Amt = accumulator.Amt + item.Amt
}));
public class CDetails
{
public string Des { get; set; }
public decimal? Amt { get; set; }
}
Amt
是否始终为空值?如何在“qry”上获得结果的总金额。
答案 0 :(得分:2)
我会检查qry.Where(item => item.Type == "Gundalac")
是否实际返回任何项目。
检查我是否倾向于将代码更改为:
lst.Add(new CDetails()
{
Des = "CATALOG",
Amt = qry
.Where(item => item.Type == "Gundalac")
.Sum(item => item.Amt)
});
在这种特殊情况下使用.Sum()
要简单得多。