У меня есть программа C#, которая извлекает квадраты из сетки sudoku. Экстракция сделана правильно, как показано здесь: http://puu.sh/mbHl9/eefe8d7b07.jpgСтранное поведение C# OrderBy
Я получил массив прямоугольников из GetObjectsRectangles aforge по методе(), который вы видите, нарисованные на картинке выше.
Я сортировка этого массива с помощью следующей строки коды:
var rektsList = rekts.OrderBy(x => x.Top).ThenBy(x => x.Left).ToList();
и сортируют правильно, для одной причуды, которая является то, что первый элемент размещен пятым в списке, как это, за исключением:
X: 435 Y: 998
X: 540 Y: 998
X: 335 Y: 1001
X: 643 Y: 1001
X: 744 Y: 1005
X: 245 Y: 1008
X: 845 Y: 1011
X: 941 Y: 1017
X: 1037 Y: 1022
X: 433 Y: 1097
X: 539 Y: 1097
X: 332 Y: 1099
X: 643 Y: 1099
X: 746 Y: 1103
X: 241 Y: 1106
X: 847 Y: 1108
X: 944 Y: 1113
X: 1041 Y: 1118
X: 431 Y: 1197
X: 539 Y: 1197
X: 643 Y: 1199
X: 329 Y: 1200
X: 747 Y: 1202
X: 237 Y: 1206
X: 850 Y: 1206
X: 948 Y: 1211
X: 1046 Y: 1215
X: 538 Y: 1301
X: 429 Y: 1302
X: 644 Y: 1302
X: 326 Y: 1304
X: 748 Y: 1305
X: 233 Y: 1309
X: 852 Y: 1309
X: 951 Y: 1312
X: 1050 Y: 1315
X: 427 Y: 1405
X: 537 Y: 1405
X: 644 Y: 1406
X: 323 Y: 1407
X: 750 Y: 1408
X: 854 Y: 1410
X: 229 Y: 1411
X: 955 Y: 1413
X: 1054 Y: 1415
X: 425 Y: 1512
X: 536 Y: 1512
X: 644 Y: 1513
X: 319 Y: 1514
X: 751 Y: 1514
X: 857 Y: 1515
X: 958 Y: 1517
X: 224 Y: 1518
X: 1059 Y: 1518
X: 423 Y: 1623
X: 535 Y: 1623
X: 644 Y: 1623
X: 753 Y: 1623
X: 859 Y: 1624
X: 961 Y: 1624
X: 316 Y: 1625
X: 1063 Y: 1625
X: 220 Y: 1628
X: 1068 Y: 1731
X: 645 Y: 1732
X: 754 Y: 1732
X: 862 Y: 1732
X: 965 Y: 1732
X: 534 Y: 1733
X: 421 Y: 1734
X: 313 Y: 1736
X: 216 Y: 1738
X: 1073 Y: 1841
X: 970 Y: 1842
X: 865 Y: 1843
X: 755 Y: 1844
X: 645 Y: 1846
X: 533 Y: 1847
X: 418 Y: 1848
X: 309 Y: 1850
X: 211 Y: 1851
У кого-нибудь есть идея, почему такое поведение происходит? Я что-то пропустил?
... но сортировка кажется правильной, сначала вы сортируете по Y, затем по X, поэтому порядок правильный. Я думаю, вы должны перефразировать свой вопрос, чтобы сделать вашу проблему более ясной. – ViRuSTriNiTy
К пятому элементу вы имеете в виду 'X: 744 Y: 1005'? Или вы имеете в виду, что 'X: 435 Y: 998' становится пятым элементом упорядоченного списка? Я не совсем уверен, что список, который вы опубликовали, является исходным списком или отсортированным списком. –
Что это значит? Похоже, что он упорядочивает «сверху», затем «левым», то есть «Y», затем «X». Если бы вы подумали об обратном, я бы предположил, что вы сначала будете жаловаться на третий элемент. – Dronz