如何从具有最大Y和最小Y的点阵列点获得?

时间:2013-08-08 07:35:12

标签: c# .net

我有点数点[]。 如何从具有最大Y和最小Y的阵列点获得。 提前谢谢。

5 个答案:

答案 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(),并添加一个元素,以获得最大或最小。但如果你想提高算法的能力,你必须了解数组如何处理数字。