【问题标题】:LINQ method syntax to group by a column, pick one element from each group with total count per group按列分组的 LINQ 方法语法,从每组中选择一个元素,每组的总数
【发布时间】:2020-12-11 10:32:13
【问题描述】:

我正在寻找使用方法语法按列分组的 LINQ 查询,选择每个组的第一个成员并将每个组的总数添加到每个组的选定实体中。

有没有办法在 LINQ 方法语法中的单个优雅语句中实现这一点?

输入:

OrderId  Name       Category
=============================
1        Sam        X
2        Sam        Y
3        Matthew    A
4        Matthew    B

输出:

OrderId  Name       Category    Count
======================================
1        Sam        X           2
4        Matthew    B           2

类似的东西。 category 的值与我无关,我只想从 group 中获取任何元素。

【问题讨论】:

    标签: c# .net linq fluent


    【解决方案1】:

    应该像GroupBy 一样简单,带有一个投影和一些聚合

    var results  = someList
          .Group(x => x.Name)
          .Select(x => new Entity()
             {
                Name = x.Key,
                OrderId = x.First().OrderId,
                Category = x.First().Category,  
                Count = x.Count()
             });
        
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-22
      • 2013-06-09
      • 1970-01-01
      • 1970-01-01
      • 2017-10-02
      • 1970-01-01
      • 2014-06-19
      • 1970-01-01
      相关资源
      最近更新 更多