c# - 按列分组的 LINQ 方法语法,从每组中选取一个元素以及每组的总计数

标签 c# .net linq fluent

我正在寻找一个 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一样简单

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

关于c# - 按列分组的 LINQ 方法语法,从每组中选取一个元素以及每组的总计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63533005/

相关文章:

c# - ASP.NET C# - 源文件分析错误 - 无法加载继承类型文件

c# - 如何使工具提示显示格式化文本?

c# - 条件运算符? : with Nullable type Casting

c# - EF6如何映射这种零或一对一关系

c# - 如何在 MVVM 中捕获 DataAnnotations 验证

c# - 项目 'Projr' 不是最新的。 VS 2017 管理员模式下缺少输出文件 'c:\..\bin\Debug\Projr.dll'

c# - 使用 `ToArray` 方法复制数组

javascript - $ 不是 b.$scope.SaveUser 的函数

.net - ASP.NET HttpApplication.EndRequest 事件未触发

c# - LINQ/EF Core 无法在查询中使用 string.Contains