Класс Sort Comparer

b когда класс b list

Класс SortComparer Обеспечивает базовую реализацию сравнения, которая должна использоваться с методом List.Sort. Класс SortComparer Позволяет конструировать экземпляр класса, специфицировав свойство объектов, которое будет сравниваться для определения отношений «равно», «больше» или «меньше», передаваемое в дескрипторе свойства, и значение из перечисления ListSortDirection. Когда класс List<T> Производит итерацию по списку, применяя внутренний алгоритм сортировки, он вызывает метод Compare, Передавая ему два объекта, с которыми он в данный момент работает в процессе сортировки. Реализация Compare Из листинга 9.4 пробует различные способы сравнения объектов. Сначала она извлекает значение специфицированного свойства каждого из объектов при помощи метода Getvalue Дескриптора свойства. Затем она проверяет, реализует ли объект, который представляют эти значения, интерфейс IComparer. Это стандартный интерфейс в. NET Framework. Он реализует метод CompareTo, Инкапсулирующий ту же логику, к которой мы стремимся — говоря конкретнее, если объект сам решает, что он равен другому переданному объекту, он возвращает О; если он больше, он возвращает 1; если он меньше, он возвращает —1. Если значения свойства не реализуют IComparer, Но метод Equals Значения говорит, что оно равно другому объекту, то Compare Возвращает О, сообщая о равенстве. Наконец, если ни одна из проверок не удалась, значения свойства преобразуются в строки и строковые представления сравниваются при помощи CompareTo, Который реализует класс String. Самое последнее, что делает метод — проверяет направление сортировки, и если оно указывает на нисходящую сортировку, он умножает возвращаемое значение на — 1, чтобы обратить смысл отношений больше/меньше. Чтобы производить сортировку из вашего класса BindingListview<T>, Вам необходимо предусмотреть переопределения всех относящихся к сортировке методов и свойств базового класса. Они показаны в листинге 9.5.

Объявление переменной типа List<T> Для сохранения несортированной коллекции при применении сортировки.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *