我有一个二维点列表。它们作为网格放置。每个点的坐标X / Y为两倍。我需要在X和Y中找到步骤。最后,我想把这些点放在列表[,]中。我不能使用排序功能,因为X或Y坐标不相同。清单示例:
- X 146.01, Y -0.36, Z 0.00
- X 600.26, Y -0.28, Z 0.00
- X 296.24, Y -0.23, Z 0.00
- X 0.00, Y 0.00, Z 0.00
- X 454.25, Y 0.07, Z 0.00
- X 144.63, Y 126.42, Z 0.00
- X 295.50, Y 127.75, Z 0.00
- X -0.60, Y 128.02, Z 0.00
- X 599.41, Y 128.72, Z 0.00
- X 454.39, Y 129.27, Z 0.00
- X 146.08, Y 264.68, Z 0.00
- X 1.09, Y 265.27, Z 0.00
- X 600.17, Y 265.57, Z 0.00
- X 455.14, Y 266.27, Z 0.00
- X 296.92, Y 266.99, Z 0.00
- X 146.47, Y 390.64, Z 0.00
- X 0.45, Y 391.06, Z 0.00
- X 455.45, Y 392.30, Z 0.00
- X 599.30, Y 392.54, Z 0.00
- X 297.29, Y 393.03, Z 0.00
这种解决方案无法正常工作:
var mySortedLIst = myList.OrderBy(p => p.X).ThenBy(p => p.Y).ToList();
因为X坐标不是“相等”,所以结果将不符合我的期望:
5 6 7 8
1 2 3 4