0

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

我选择速率 15.5,因为它具有最高的低范围 val

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

任何想法我如何使用 linq 来实现这一点,c# 都会有所帮助

4

2 回答 2

2

@CuongLe 有最简单的答案。

Linq 有一个很好的扩展(最初由 Jon Skeet 作为MoreLinq的一部分编写,或者也可以参见此处)调用MaxBy()它可以让你这样做:

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

这效率更高,因为它只有 O(N),OrderByDecending()O(N*Log(n))

于 2013-05-15T10:07:12.640 回答
2

你可以OrderByDescending然后LowRange得到First

 list.OrderByDescending(x => x.LowRange).First();
于 2013-05-15T09:57:04.210 回答