Здравствуйте, vSnake, Вы писали:
S>Добрый день.
... S>Я проверил метод Compare Icomparera возвращает 0, так почему же тогда происходит перестановка?
Ты пользуешься Unstable sort, поэтому и происходит перестановка. В часности Array.Sort использует такую (QSort).
В примечании в мсдн'е по этому поводу написано:
This implementation performs an unstable sort; that is, if two elements are equal, their order might not be preserved. In contrast, a stable sort preserves the order of elements that are equal.
S>Может можно как-то подругому отсортировать?
Можно. Например реализовать свою "stable" сортировку. В твоем же случае проще все же упорядочить элементы с одинаковыми ключами сортировки по приоритетам в зависимости от их изначального положения и не возвращать 0.
S>Спасибо.
Пока незачто. =)