当项目具有相同名称时,筛选出最旧的项目
本文关键字:项目 筛选 | 更新日期: 2023-09-27 18:32:24
public class Foo
{
public string Name {get; set;}
public int Year {get; set;}
}
假设我有一个 Foo 项目列表。某些 Foo 项目可能具有相同的名称。在这种情况下,我想过滤掉除具有该名称的最新 Foo 项目之外的所有项目。(一个Foo项目不能有相同的名称和相同的年份)
有没有办法用单个 LINQ 语句来做到这一点?
您可以使用
GroupBy
:
var result = items.GroupBy(foo => foo.Name)
.Select(g => g.OrderByDescending(foo => foo.Year).First())
.ToList();