Aggregate显示空值

时间:2012-09-17 04:44:50

标签: c# linq

我的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”上获得结果的总金额。

1 个答案:

答案 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()要简单得多。