ポイント構造体配列があります:
Point[] arr = samples.pointsArray;
X が最大の数であるこの配列ポイントから取得する必要があります。
Point maxX= (some logic);
これをどのように実装できるか考えていますか?
OrderBy
およびFirst
LINQ 演算子を使用します。
Point minX = arr.OrderBy(p => p.X).First();
Point maxX = arr.OrderByDescending(p => p.X).First();
また
Point maxX = arr.OrderBy(p => p.X).Last();
代替ソリューション (を使用せずにOrderBy
):
OrderBy を使用せずにポイントの配列から最小の X でポイントを取得する方法は?
@Rotem で提案されているように、配列を並べ替える (!?!) 必要がなくても、次のように簡単に実行できます。
int maxX = arr.Max(p => p.X);
Point maxXPt = arr.First(p => p.X == maxX);
これは O(n) で行われるのに対し、OrderBy
メソッドは O(n log n) であることに注意してください。