.NET 4.x Перебор списка и выборка на основе метода - C#
Формулировка задачи:
Прошу подсказать советом, в какую сторону копать или гуглить по форуму
Имеется 1000 точек. Предположим:
В некоем цикле надо перебрать их все и на основании другого метода отсеять неподходящие.
Сортировка такая: берём первую точку, сравниваем со
public class Point { public Double X { get; set; } public Double Y { get; set; } public Double Z { get; set; } public Point(Double _x, Double _y, Double _z) { X = _x; Y = _y; Z = _z; } }
второй
, условие не выполнено. Берём первую точку, сравниваем стретьей
, условие выполнено => добавляем точки в результирующий массив и начинаем заново перебор с последней взятой, тоесть с третьей точкой: берем третью точку, сравниваем счетвертой
, условие выполнено => добавляем четвёртую точку. И снова выборка, начиная с последней добавленной в результирующий массив. Есть ли какие подходящие алгоритмы для такого?Решение задачи: «.NET 4.x Перебор списка и выборка на основе метода»
textual
Листинг программы
//Код не совсем корректен public void Sort(List<Point> points) { List<Point> resultArray = new List<Point>(); Int32 i = 0; Boolean firstTrue = false; Boolean secondTrue = false; while (i < 1000) { Point first = null; if (!firstTrue) { first = points[i]; } Point second = points[i + 1]; Point third = points[i + 2]; Point center = GetCircleCenter(first, second, third); if (SomeSortingMethod(first, center, second)) { resultArray.Add(first); resultArray.Add(second); firstTrue = true; } if (SomeSortingMethod(second, center, third)) { resultArray.Add(second); resultArray.Add(third); secondTrue = true; } if (firstTrue) { i = i + 1; } if (secondTrue) { i = i + 1; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д