gpt4 book ai didi

c# - 如何在特定属性上使用 Distinct 并根据谓词选择要保留的对象?

转载 作者:行者123 更新时间:2023-11-30 13:36:09 29 4
gpt4 key购买 nike

我有一个包含 Document 对象的 ListDocument 类有很多属性,但这里只有两个相关,DocumentLinkIdUploadedOnDate

我想做的是过滤列表,这样就不会有两个 Document 对象具有相同的 DocumentLinkId。当有多个 Document 对象具有特定的 DocumentLinkId 时,我想保留具有最新 UploadedOnDate 的对象。

我最初的想法是做这样的事情:

myDocumentsList.Distinct(d => d.DocumentLinkId).Max(d => d.UploadedOnDate);

但是 Distinct() 不采用谓词。有没有办法用 LINQ 做到这一点?

最佳答案

您可以按 DocumentLinkId 对文档进行分组,并为每个组选择具有最新 UploadedOnDate 的项目,如下所示:

var result = myDocumentsList
.GroupBy(d => d.DocumentLinkId)
.Select(g => g.OrderByDescending(d => d.UploadedOnDate).First())
.ToList();

关于c# - 如何在特定属性上使用 Distinct 并根据谓词选择要保留的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38085016/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com