2016-07-25 4 views
1

Я собрал некоторые координаты (x, y) в списке и вам нужно отсортировать их слева направо, сверху вниз в порядке чтения. Прилагаемое изображение показывает, к чему я стремлюсь.Как отсортировать список слева направо, а затем сверху вниз

Я думал, что ниже будет работать, но это не упорядочивает их правильно. Любая помощь оценивается. Благодаря!

mypointlist = mypointlist.OrderByDescending(pnt => pnt.X).ThenBy(pnt => pnt.Y).ToList(); 

Example Image

+0

как это приложение с вашим нынешним кодом. – Maverick

+0

Это выглядит правильно, только я думаю, что нужно изменить, это использовать OrderBy вместо OrderByDescending. – Maverick

+0

Пробовал разные варианты. Я думаю, что проблема заключается в том, что мои координаты x и координаты y одинаковы для каждой строки/столбца (если применимо). Не уверен. Что-то отбрасывает. например. x для 1,5,9 и 13 одинаковы, а значения y для 1,2,3 и 4 являются одинаковыми. – user2148138

ответ

1

Вам нужно отсортировать их по Y восходящим (сверху вниз), Тогда X восходящих (Чтобы заказать очки с тем же Y слева направо):

mypointlist = mypointlist.OrderBy(pnt => pnt.Y).ThenBy(pnt => pnt.X).ToList(); 
0

Это, кажется, работает в моем конкретном случае, но я не уверен, что это полное доказательство:

mypointlist = mypointlist.OrderByDescending(pnt => pnt.Y).ThenBy(pnt => pnt.X).ToList(); 
Смежные вопросы