-1

我有点结构数组:

Point[] arr  = samples.pointsArray;

我需要从这个 X 是最大数字的数组点中检索。

  Point maxX= (some logic);

知道如何实现吗?

4

2 回答 2

4

使用OrderByFirstLINQ 运算符:

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 的点?

于 2012-11-25T14:36:34.177 回答
1

无需按照@Rotem 的建议重新排序数组(!?!),您可以简单地执行以下操作:

int maxX = arr.Max(p => p.X);
Point maxXPt = arr.First(p => p.X == maxX);

请注意,这是在 O(n) 中完成的,而OrderBy方法是 O(n log n)。

于 2013-04-14T16:02:37.217 回答