#c# #linq #list
#c# #linq #Список
Вопрос:
У меня есть список точек, которые находятся на 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. начальная точка всегда будет с x = 0 ??
2. Полилиния означает линию, проходящую через несколько точек? Тогда вы не можете знать… Вы можете провести непрямую линию через любую группу точек в любом порядке
Ответ №1:
Проблема, как указано, некорректна. «Полилиния»? Какая полилиния? В вашем примере существует 4 ! / 2 = 12 различных возможных полилиний.
Если вы предполагаете, что точки на полилинии имеют строго возрастающие значения X, то вы могли бы сделать следующее.
var orderedPoints = PointsOnPolyline.OrderBy(p => p.X);
var firstPoint = orderedPoints.First();
var lastPoint = orderedPoints.Last();
Комментарии:
1. необязательно, чтобы начальная точка всегда была с x = 0
2. @EhsanSajjad Я не делаю такого предположения.
3. если это так, какое может быть возможное решение
4. Да, Xs увеличивается, я забыл включить его.