如何从左到右然后从上到下对列表进行排序

时间:2016-07-25 04:38:04

标签: c# .net arrays list sorting

我在列表中收集了一些坐标(x,y),需要从左到右排序,按照阅读顺序自上而下。附图显示了我的目标。

我认为下面的内容会起作用,但它没有正确排序。任何帮助赞赏。谢谢!

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

Example Image

2 个答案:

答案 0 :(得分:1)

您需要按Y升序(从上到下)对它们进行排序,然后按X升序(从左到右排序具有相同Y的点):

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

答案 1 :(得分:0)

这似乎在我的特定情况下有效,但我不确定它的完整证明:

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