找到折线的起点和终点

时间:2014-06-22 18:44:18

标签: c# linq list

我有一个位于Polyline的点列表。列表中的点不按顺序排列。如何找到Polyline的起点和终点(最好使用LINQ

public class Point
{    
    public double X;
    public double Y;
}

var PointsOnPolyline = new List<Point>
{
    new Point { X = 300, Y = 400 },
    new Point { X = 0, Y = 400 },
    new Point { X = 1200, Y = 500 },
    new Point { X = 700, Y = 400 }
};

FinalResult = {P(0,400), P(1200,500)}

1 个答案:

答案 0 :(得分:1)

所述问题是不适当的。 “折线”?哪条折线?在您的示例中,有4个!/ 2 = 12种不同的可能折线。

如果您假设折线上的点严格增加X值,那么您可以执行以下操作。

var orderedPoints = PointsOnPolyline.OrderBy(p => p.X);
var firstPoint = orderedPoints.First();
var lastPoint = orderedPoints.Last();