Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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# 根据属性的最大值对列表进行排序的简单方法_C#_Linq - Fatal编程技术网

C# 根据属性的最大值对列表进行排序的简单方法

C# 根据属性的最大值对列表进行排序的简单方法,c#,linq,C#,Linq,我有一个从连接表中得到的列表,这个列表有低范围值和高范围值,目标是选择具有最大低范围值的行,在下面的示例中 我选择15.5,因为它具有最高的下限值 Rate LowRange HighRange --------------------------------------- 12.5 300000 0 15.5 1500000 300001 17.5 NULL 1

我有一个从连接表中得到的列表,这个列表有低范围值和高范围值,目标是选择具有最大低范围值的行,在下面的示例中

我选择15.5,因为它具有最高的下限值

    Rate        LowRange    HighRange
    ---------------------------------------
    12.5        300000      0
    15.5        1500000     300001
    17.5        NULL        1500001

任何关于如何使用linq,c实现这一点的想法都会有所帮助

您可以在
低范围
上按降序
排序
,然后先获取

 list.OrderByDescending(x => x.LowRange).First();

您可以在
low-range
OrderByDescending
,然后首先获取

 list.OrderByDescending(x => x.LowRange).First();

@库恩格尔有最简单的答案

Linq有一个很好的扩展(最初由Jon Skeet作为的一部分编写,或者也被称为
MaxBy()
),它可以让您这样做:

var max = list.MaxBy(item => item.LowRange);

这更有效,因为它只有O(N),而
orderbydecenting()
O(N*Log(N))
@CuongLe有最简单的答案

Linq有一个很好的扩展(最初由Jon Skeet作为的一部分编写,或者也被称为
MaxBy()
),它可以让您这样做:

var max = list.MaxBy(item => item.LowRange);

这更有效,因为它只有O(N),而
orderbydecenting()
O(N*Log(N))

谢谢你的快速回复:)让我试试你的快速回复:)让我试试Matthew Watson和stackoverflow谢谢Matthew Watson和stackoverflow