-6

我有点数组点 []。我怎样才能从这个数组中获得最大 Y 和最小 Y 的点。提前谢谢。

4

5 回答 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 回答