c# - 根据不同的字段/整数进行选择和分组
问题描述
SQL中的表:
Document Revision Version
-----------------------------------------------------
ABC 1 1
ABC 1 2
ABC 1 8
ABC 2 3
DocumentF 1 3
DocumentF 1 2
预期输出:
Document Revision Version
-----------------------------------------------------
ABC 1 8
ABC 2 3
DocumentF 1 3
基本上如果同一个版本有两个版本,根据版本带回最新的。
我尝试了以下方法:
var list = from document in documents
group document by document.Document
into groups
from g in groups
group g by g.Revision
into final
select final.OrderByDescending(d => d.Version).FirstOrDefault();
上面的代码产生以下内容:
Document Revision Version
-----------------------------------------------------
ABC 2 3
DocumentF 1 3
解决方案
使用 Linq,我们可以按多个属性分组,如下所示
var list = from document in documents
group document by (document.Document, document.Revision)
into groups
select groups.OrderByDescending(d => d.Version).FirstOrDefault();
推荐阅读
- python - 如何在基于 Intel Xeon 处理器的 PC 上安装 Tensorflow?
- amazon-web-services - Cloudformation 为 Application Load Balancer 自动创建证书
- javascript - 我如何在本机反应中访问组件的内部属性(标题)
- r - 在R中解压缩文件时如何解决没有文件错误?
- javascript - 在 array.prototype.map(在 RxJS 管道中)中返回副本或操作原始对象之间的区别
- c# - 按 Linq EF Core 中的项目类别分组
- excel - 将特定单词从 Word 获取到 Excel
- java - 超时服务器端长时间运行的请求
- json - 是否有可能在 gin-gonic 绑定的 json 中消失一个范围?
- reactjs - Antd表单远程提交