2

リストに次のようなPointFが含まれている場合:

[10.5, 5.5]
[8.5, 4.5]
[10.5, 6.5]
[5.5, 10.5]
[10.5, 3.5]

LINQで最初にxの最大値を見つけてから、それらの最大X値の中からYの最大値を見つけて、次のような結果を得ることができますか?

[10.5, 6.5] 
4

2 に答える 2

8
points.OrderBy(i => i.x).ThenBy(i => i.y).Last();

または、LINQクエリ構文を優先する場合:

(from point in points
orderby point.x, point.y 
select point).Last();
于 2012-09-19T23:27:09.173 に答える
2

x値でグループを追跡し、最も高いグループを取得し、そのグループで最も高いy値を選択します。

PointF maxPoint = points
        .GroupBy(p => p.X)
        .OrderByDescending(g => g.Key)
        .Take(1)
        .Select(g => new PointF(g.Key, g.Max(p => p.Y)))
        .First();
于 2012-09-19T23:12:37.133 に答える