Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Lambda表达式从多个记录中获取最大值_C#_.net_Lambda_C# 6.0 - Fatal编程技术网

C# 使用Lambda表达式从多个记录中获取最大值

C# 使用Lambda表达式从多个记录中获取最大值,c#,.net,lambda,c#-6.0,C#,.net,Lambda,C# 6.0,作为数据,我列出了“MySoft”(软件名、版本、价格): 我想保留最高版本的名称、价格和版本 结果应该是: SoftA 1 25 SoftB 1 35 SoftB 2 12 SoftB 3 24 SoftA 2 14 你有什么想法吗 谢谢,只需按名称分组,然后在版本上对每组进行排序,然后选择最后一组 SoftA 2 14 SoftB 3 24 你也可以这样做 var results = list.GroupBy(x => x.SoftName)

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

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

结果应该是:

SoftA   1   25
SoftB   1   35
SoftB   2   12
SoftB   3   24
SoftA   2   14
你有什么想法吗


谢谢,

只需按名称分组,然后在版本上对每组进行排序,然后选择最后一组

SoftA 2 14
SoftB 3 24
你也可以这样做

var results = list.GroupBy(x => x.SoftName)
    .Select(g => g.OrderBy(x => x.Version).Last());

var results = list.GroupBy(x => x.SoftName)
    .Select(g => g.OrderBy(x => x.Version).Last());
 var result = softwares.GroupBy(item => item.SoftName)
        .Select(grp => grp.Aggregate((max, cur) =>
                             (max == null || cur.Version > max.Version) ? cur : max));