我在數據表中有三列: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