我有一个表,其中包含类似
的数据Year Month Date Sum1
2019 01 01 11
2019 02 03 12
2019 02 03 13
2019 02 04 13
2019 03 05 14
2019 03 10 15
如何将其分组以获得类似的结果
2019 +
01 +
01 11
02 +
03 25
04 12
03 +
10 15
04 13
我尝试过
IEnumerable<IGrouping<int, myList>> result= myList.GroupBy(x=>x.Year);
但我不知道如何GroupBy
才能得到该结果。
我想按年份分组,然后按月分组,然后按日期分组,以获取日期级别的总和1
我怎样才能用LINQ做到这一点?
我知道我可以在很多foreach中做到这一点,但是也许存在一个优雅的解决方案。
答案 0 :(得分:1)
我创建了一个名为myObject
的测试对象。我假设这就是您从表中存储数据的方式。如果没有,请提供您的替代方法,我会尝试进行调整。
您的LINQ可能看起来像这样:首先,它同时对所有三个属性(年,月,日)进行分组,然后Select
对每个组的总和。
var result = myList.GroupBy(o => new { o.Year, o.Month, o.Date })
.Select(o => new myObject() {
Year = o.Key.Year,
Month = o.Key.Month,
Date = o.Key.Date,
Sum1 = o.Sum(x => x.Sum1)
});