public class MySoft
{
    public string SoftName { get; set; }
    public int Version { get; set; }
    public decimal Price { get; set; }

}


作为数据,我列出了“ MySoft”(软件名称,版本,价格):

SoftA   1   25
SoftB   1   35
SoftB   2   12
SoftB   3   24
SoftA   2   14


我想保留名称,价格和版本最高的版本。

结果应为:

SoftA 2 14
SoftB 3 24


你有想法吗 ?

谢谢,

最佳答案

你也可以这样做,

 var result = softwares.GroupBy(item => item.SoftName)
        .Select(grp => grp.Aggregate((max, cur) =>
                             (max == null || cur.Version > max.Version) ? cur : max));


Fiddle

10-08 14:32