リストに次のような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]
points.OrderBy(i => i.x).ThenBy(i => i.y).Last();
または、LINQクエリ構文を優先する場合:
(from point in points
orderby point.x, point.y
select point).Last();
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();