LINQ 方法语法按列分组,从每组中选择一个元素,每组总计数

LINQ method syntax to group by a column, pick one element from each group with total count per group

我正在寻找使用方法语法按列分组的 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

像这样。类别的值与我无关,我只想从组中获取任何元素。

应该像 GroupBy 一样简单,带有 projection 和一些 aggregates

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()
         });