2016-07-25 146 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坐标对于每个行/列是相同的(如适用)。不确定。有些东西虽然抛弃了。例如。 1,5,9和13的x值相同,1,2,3和4的y值相同。 – 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(); 
相关问题