.NET 4.x Сортировка и IComparable - C#

Узнай цену своей работы

Формулировка задачи:

Всем добрый вечер || день. Возник вопрос по поводу компаратора. У меня есть класс, который имеет два поля - Key и Value Мне необходимо производить их сортировку. Я реализовал в классе метод CompareTo следующим образом:
class Couple : IComparable
    {
        public string Key { get; set; }
        public string Value { get; set; }
 
        public int CompareTo(object obj)
        {
            Couple oterCouple = obj as Couple;
            if (oterCouple != null)
            {
                return this.Key.CompareTo(oterCouple.Key); //Сравнение ключей
            }
            else
                throw new ArgumentException("Object is not a Couple");
 
        }
}
Делаем сортировку примерно так:
...
var Config = new List<Couple>();
...
Config.Sort();
...
На выходе получаю отсортированый список по ключам, все как надо. А теперь вопрос. Как реализовать возможность сортировки по ключу и по значению? Я имею ввиду для каждого различными методами. У меня именно сложность с пониманием механизма метода CompareTo. Хотелось бы увидеть объяснение и мысли по поводу реализации сортировки. П.С. Не будем рассматривать различные прочие виды коллекций, т.к. они мне не подходят по некоторым причинам (есть ограничения в задании).

Решение задачи: «.NET 4.x Сортировка и IComparable»

textual
Листинг программы
    class Couple  
    {
        public int Key { get; set; }
        public string Value { get; set; }
    }
    class Program
    {
        static void Main(string[] args)
        {
            List<Couple> d = new List<Couple> 
            { 
                new Couple{Key = 2,Value ="xczd"},
                new Couple{Key = 2,Value ="avbs"},
                new Couple{Key = 2,Value ="cadcwad"},
                new Couple{Key = 56,Value ="avbs"},
                new Couple{Key = 1,Value ="dadbs"},
                new Couple{Key = 8,Value ="zzzz"},
            } ;
            d = d.OrderBy(x => x.Key).ThenBy(x => x.Value).ToList<Couple>();
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5
Похожие ответы