c# - 按列分组的 LINQ 方法语法,从每组中选择一个元素,每组的总数
问题描述
我正在寻找使用方法语法按列分组的 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()
});
推荐阅读
- flutter - PageView 上 Stack 外的 BackdropFilter 覆盖
- python - 'FrameProcessor' object is not callable
- xctest - FBSnapshotTestcase 与 xcuiscreenshot
- excel - MS Access 365,图表,散点图
- react-native - ReferenceError:找不到变量:堆栈
- android - 在android热敏打印机中打印阿拉伯字符
- javascript - 如何在 Vuejs 中创建路由不仅可以访问页面,还可以访问特定元素?
- azure - ARM 模板问题引导诊断不会进入现有存储容器
- python - Python 在特定时间段内运行一个函数并移动到下一个
- pandas - 将数据框列的字符串连接作为系列索引