2012-09-17 57 views
0

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

回答

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()这种特殊情况下是简单了很多。