即使在應用返回 0 時,進入此的初始列表也會出現(xiàn)不同的順序。我認為返回 0 會使游戲保持與最初處理的順序相同,但情況似乎并非如此。如果沒有其他任何回報被擊中,訂單不應該與原始數(shù)組保持一致嗎?games.Sort((game1, game2) => { DateTime? minMaxDate1 = null; DateTime? minMaxDate2 = null; minMaxDate1 = FindDateRestriction(autoSchedulerLists, game1.AwayTeam, minMaxDate1); minMaxDate1 = FindDateRestriction(autoSchedulerLists, game1.HomeTeam, minMaxDate1); minMaxDate2 = FindDateRestriction(autoSchedulerLists, game2.AwayTeam, minMaxDate2); minMaxDate2 = FindDateRestriction(autoSchedulerLists, game2.HomeTeam, minMaxDate2); if (minMaxDate1.HasValue && !minMaxDate2.HasValue) return -1; if (minMaxDate2.HasValue && !minMaxDate1.HasValue) return -1; if (minMaxDate1.HasValue && minMaxDate2.HasValue && minMaxDate1 != minMaxDate2) { return minMaxDate1 < minMaxDate2 ? -1 : 1; } return 0; });
1 回答

斯蒂芬大帝
TA貢獻1827條經(jīng)驗 獲得超8個贊
如果所有項目都返回 0,訂單不應該與原始數(shù)組保持一致嗎?
不,List<T>.Sort
...
執(zhí)行不穩(wěn)定排序;也就是說,如果兩個元素相等,它們的順序可能不會被保留。相反,穩(wěn)定排序保留相等元素的順序
如果你想要一個穩(wěn)定的排序,你可以使用 LINQ 的OrderBy
.
此方法執(zhí)行穩(wěn)定排序;也就是說,如果兩個元素的鍵相等,則保留元素的順序。相反,不穩(wěn)定排序不會保留具有相同鍵的元素的順序。
所以像:
games = games.OrderBy(g => /* logic here */) .ToList();
- 1 回答
- 0 關注
- 183 瀏覽
添加回答
舉報
0/150
提交
取消