【问题标题】:LINQ GroupBy result of previous GroupBy [duplicate]先前 GroupBy 的 LINQ GroupBy 结果 [重复]
【发布时间】:2019-05-06 20:24:47
【问题描述】:

我有一个表格,里面有类似的数据

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 这个结果。 我想按年分组,然后按月分组,然后按日期分组,并在日期级别获得 Sum1 的总数 我怎么能用 LINQ 做到这一点? 我知道如何在很多 foreach 中做到这一点,但也许存在一个优雅的解决方案。

【问题讨论】:

    标签: c# asp.net linq asp.net-core


    【解决方案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)
                    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多