我有点数点[]。 如何从具有最大Y和最小Y的阵列点获得。 提前谢谢。
答案 0 :(得分:2)
Point Max = Points.MaxBy(p => p.Y);
Point Min = Points.MinBy(p => p.Y);
这是使用MoreLINQ。
答案 1 :(得分: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);
答案 2 :(得分: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);
答案 3 :(得分: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();
}
}
答案 4 :(得分:-1)
你可以使用Array.length(),并添加一个元素,以获得最大或最小。但如果你想提高算法的能力,你必须了解数组如何处理数字。