Как сделать сортировку по убыванию в SortedList?

Приветствую всех! При работе с коллекциями, часто приходиться производить сортировку, а иногда и реверс всего содержимого. Вот тут мы и используем не большую хитрость:

public class DescendingComparer : IComparer
    {
        CaseInsensitiveComparer comparer = new CaseInsensitiveComparer();

        public int Compare(object x, object y)
        {
            // Для сортировки по убыванию.
            // Объекты, переданные для сравнения, меняются местами.
            int result = comparer.Compare(y, x);
            return result;
        }

В данном примере мы проверяем равенство двух объектов без учета регистра строк, и в метод Compare передаем эти объекты, поменяв местами, таким образом получив сортировку по убыванию. Данную пример обратной сортировки можно использовать во всех коллекциях и не только в SortedList.

Для вызовы необходимо лишь передать наш класс в конструктор коллекции:

 var sortRevers = new SortedList(new DescendingComparer());

 

 

Обновлено: 26.05.2018 — 17:14

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.