【问题标题】:Group distinct values in same column在同一列中分组不同的值
【发布时间】:2019-10-04 20:03:50
【问题描述】:

我有一个包含以下值的值列表:

细分 |当前值 |上一个值 城市 A 2 0 城市 B 5 0 城市 C 0 2 城市 A 0 3 城市 C 5 0

我试过这个:

var groupedValues= dadosZoom.Select(d => new { d.Segmentation, d.PreviousValue, d.CurrentValue }).
    GroupBy(x => x.Segmentation, (key) => new
         {
            key.Segmentation,
            key.PreviousValue,
            key.CurrentValue
         }).ToList();

我期望这样的输出:

细分 |当前值 |上一个值 城市 A 2 3 城市 B 5 0 城市 C 5 2

但实际返回的是字典:System.Linq.Lookup<string,<>f__AnonymousType1<string, double, double>>.Grouping

【问题讨论】:

    标签: c# linq


    【解决方案1】:

    您似乎想要每个 Segmentation 的最大 PreviousValueCurrentValue。所以你需要做一个这样的聚合。

    var groupedValues= dadosZoom.GroupBy(x => x.Segmentation)
        .Select(grp => new
        {
            Segmentation = grp.Key,
            PreviousValue = grp.Max(x => x.PreviousValue),
            CurrentValue = grp.Max(x => x.CurrentValue)
        })
        .ToList();
    

    或者,如果您需要总和,只需使用 Sum 而不是 Max

    【讨论】:

      猜你喜欢
      • 2021-06-13
      • 2022-08-09
      • 1970-01-01
      • 1970-01-01
      • 2021-11-08
      • 2018-11-29
      • 1970-01-01
      • 2021-04-20
      • 1970-01-01
      相关资源
      最近更新 更多