我有点数组点 []。我怎样才能从这个数组中获得最大 Y 和最小 Y 的点。提前谢谢。
问问题
1081 次
5 回答
2
Point Max = Points.MaxBy(p => p.Y);
Point Min = Points.MinBy(p => p.Y);
这是使用MoreLINQ。
于 2013-08-08T07:42:56.640 回答
2
var maxY= array.Max(x=>x.Y);
var minY= array.Min(x=>x.Y);
Point maxPoint = array.FirstOrDefault(p => p.Y == maxY);
Point minPoint = array.FirstOrDefault(p => p.Y == minY);
于 2013-08-08T07:44:01.600 回答
1
使用 Linq 很容易:
var pointYGroups = points.GroupBy(p => p.Y).OrderBy(g => g.Key);
IEnumerable<Point> smallessY_Points = pointYGroups.First();
IEnumerable<Point> largestY_Points = pointYGroups.Last();
// output
foreach (var minPoint in smallessY_Points)
Console.WriteLine("Point: [{0}|{1}]", minPoint.X, minPoint.Y);
于 2013-08-08T07:37:11.127 回答
1
试试这个:
class Program
{
static void Main(string[] args)
{
Point[] a = new Point[]{
new Point() { X = 0, Y = 3 },
new Point() { X = 1, Y = 3 },
new Point() { X = 2, Y = 1 },
new Point() { X = 3, Y = 1 },
new Point() { X = 1, Y = 2 }
};
var max = a.Max(p1 => p1.Y);
var min = a.Min(p1 => p1.Y);
var maxY = a.Where(p => p.Y == max).ToArray();
var minY = a.Where(p => p.Y == min).ToArray();
}
}
于 2013-08-08T07:44:53.247 回答
-1
你可以使用Array.lenth(),并添加一个元素,得到最大或最小。但是如果你想提高算法的能力,你必须学习Array是如何处理数字的。
于 2013-08-08T07:43:47.163 回答