public class Foo
{
public string Name {get; set;}
public int Year {get; set;}
}
说我有一个Foo项目列表。 某些Foo项可能具有相同的名称。在这种情况下,我想过滤除了最新的Foo项目以外的所有名称。 (一个Foo项目不能具有相同的名称和相同的年份)
是否可以使用单个LINQ语句执行此操作?
答案 0 :(得分:5)
您可以使用GroupBy
:
var result = items.GroupBy(foo => foo.Name)
.Select(g => g.OrderByDescending(foo => foo.Year).First())
.ToList();