我有一个带有“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"),
}
);
答案 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"))
};
请考虑名称No
和TotalSum
。
答案 1 :(得分:1)
你开始使用linq,但是好的DataTable
有own way:
var total = DtSet.Tables["tblDetails"].Compute("sum(Total)", "No = x");
我必须留下x
,因为我不知道“No”列的值。部分"No = x"
是一个过滤器。如果它为null或空字符串,则所有行都将用于计算中。