Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 查找多段线的起点和终点_C#_Linq_List - Fatal编程技术网

C# 查找多段线的起点和终点

C# 查找多段线的起点和终点,c#,linq,list,C#,Linq,List,我有一个位于多段线上的点列表。列表中的点不符合顺序。如何找到多段线的起点和终点(最好使用LINQ) 公共类点 { 公共双X; 公共双Y; } var PointsOnPolyline=新列表 { 新点{X=300,Y=400}, 新点{X=0,Y=400}, 新点{X=1200,Y=500}, 新点{X=700,Y=400} }; 最终结果={P(0400),P(1200500)} 所述问题是不适定的。“多段线”?哪条多段线?在您的示例中,有4个/2=12条不同的可能多段线 如果假定多段

我有一个位于
多段线上的点列表。列表中的点不符合顺序。如何找到
多段线的起点和终点(最好使用
LINQ

公共类点
{    
公共双X;
公共双Y;
}
var PointsOnPolyline=新列表
{
新点{X=300,Y=400},
新点{X=0,Y=400},
新点{X=1200,Y=500},
新点{X=700,Y=400}
};
最终结果={P(0400),P(1200500)}

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

如果假定多段线上的点具有严格递增的X值,则可以执行以下操作

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

起点始终为x=0??多段线表示一条线穿过多个点?那你就不知道了。。。您可以以任何顺序通过任何一组点绘制一条非直直线。起点不一定总是x=0@EhsanSajjad如果是这样的话,可能的解决方案是的,X在增加,我忘了包括它。
var orderedPoints = PointsOnPolyline.OrderBy(p => p.X);
var firstPoint = orderedPoints.First();
var lastPoint = orderedPoints.Last();