CompareTo()
метод для моего класса является динамичным, и может колебаться от простого сравнения до сравнений в ряде столбцов. Это все определяется во время выполнения, и это работает отлично.
Но в некоторых случаях, я хочу любую попытку отсортировать набор моих объектов с помощью сравнения по умолчанию, чтобы ничего просто не сделать.
Наличие CompareTo()
просто возвратите 0 для любого сравнения, к моему удивлению, не работает. Список перестроен в некотором нечетном, по-видимому-произвольном-порядке.
Есть ли способ выполнить в этом CompareTo()
реализация метода? Я не обработал бы это на уровне набора при необходимости переопределить Вид ().
Это потому, что QuickSort не является стабильной сортировкой . Я не вижу хорошего варианта исправить это в методе CompareTo, если вы не можете каким-то образом получить индекс элемента.
Я не доказал это, но в качестве предложения, что, если вы попытаетесь всегда возвращать 1 или всегда -1?
Необходимо переопределить Sort ()
. Реализация по умолчанию Sort ()
не дает никаких гарантий относительно того, как она будет использовать CompareTo ()
для получения отсортированной коллекции, поэтому нет никакого способа использовать ее для создания Sort ()
поступает правильно.