我在数据表中有三列:string,DateTime和decimal。我想按字符串和小数列进行分组,对于分组的行,我想对小数值进行求和。我知道如何完成总和部分,但是如何将数据表中的两个不同列分组?c#使用linq按数据表中的多列分组
这是到目前为止我的代码不正常工作:
var newSort = from row in objectTable.AsEnumerable()
group row by new {ID = row.Field<string>("resource_name"), time1 = row.Field<DateTime>("day_date")} into grp
orderby grp.Key
select new
{
resource_name1 = grp.Key.ID,
day_date1 = grp.Key.time1,
Sum = grp.Sum(r => r.Field<Decimal>("actual_hrs"))
};
“编译器认为所有的obj ects是相同的,所以每一行都被分组“ - 你的意思是所有的对象都被放到一个大的组中,所以最终只有'newSort'集合中有一个项目? – StriplingWarrior
是的,newSort只包含数据表的最后一个元素 – Sam
该查询对我来说看起来是正确的。你能检查并重新检查你的输入吗? – StriplingWarrior