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

4

1 回答 1

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

于 2012-09-17T05:19:11.013 回答