我有個結構數組:我需要從這個數組點檢索,其中X爲最大數
Point[] arr = samples.pointsArray;
我需要從這個數組點檢索,其中X爲最大數。
Point maxX= (some logic);
任何想法如何我可以實現這個?
我有個結構數組:我需要從這個數組點檢索,其中X爲最大數
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
):
How to get the Point with minimal X from an array of Points without using OrderBy?
任何原因您將答案從.Min更改爲OrderBy? –
@Ganesh因爲我注意到OP想要**最低的X點,而不是最低的X. – Rotem
,而無需重新排序陣列由@Rotem的建議,你可以簡單地做(!?!):
int maxX = arr.Max(p => p.X);
Point maxXPt = arr.First(p => p.X == maxX);
注意這是爲O(n)來完成,而OrderBy
方法是O(n日誌N)。
「X是最小的數字」。什麼是X? –
X是最大的數字。我錯了。 – Michael