获得最大的价值
问题描述:
public class MySoft
{
public string SoftName { get; set; }
public int Version { get; set; }
public decimal Price { get; set; }
}
由于DATAS我有“MySoft”的名单(softname,版本,价格):获得最大的价值
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));
答
由仅举组,然后订单上的版本各组取最后一个。
var results = list.GroupBy(x => x.SoftName)
.Select(g => g.OrderBy(x => x.Version).Last());