Linq Objects Group By&和

时间:2013-01-22 18:33:47

标签: c# linq dataset sum

我有一个带有“No”和“Total”列的数据表。我想把每个“否”的“总计”列的总和带回来。我已经尝试了下面的内容,但是由于我在语法方面遇到了困难,我遇到了一些错误。

var Values =
        (from data in DtSet.Tables["tblDetails"].AsEnumerable()
         group data by data.Field<"No">
         select new
         {
             name_1 = data.Field<double>("No"),
             name_2 = data.Field<double>("Total"),
         }
         );   

2 个答案:

答案 0 :(得分:5)

这会在Total属性中为name_2个字段提供总和,并在No属性中对name_1进行分组(我认为您需要更好地命名)

var Values = from row in DtSet.Tables["tblDetails"].AsEnumerable()
             group row by row.Field<double>("No") into g
             select new
             {
                 name_1 = g.Key,
                 name_2 = g.Sum(r => r.Field<double>("Total"))
             };

请考虑名称NoTotalSum

答案 1 :(得分:1)

你开始使用linq,但是好的DataTableown way

var total = DtSet.Tables["tblDetails"].Compute("sum(Total)", "No = x");

我必须留下x,因为我不知道“No”列的值。部分"No = x"是一个过滤器。如果它为null或空字符串,则所有行都将用于计算中。