.NET 4.x Сортировка и IComparable - C#
Формулировка задачи:
Всем добрый вечер || день.
Возник вопрос по поводу компаратора.
У меня есть класс, который имеет два поля - Key и Value
Мне необходимо производить их сортировку.
Я реализовал в классе метод CompareTo следующим образом:
Делаем сортировку примерно так:
На выходе получаю отсортированый список по ключам, все как надо.
А теперь вопрос.
Как реализовать возможность сортировки по ключу и по значению? Я имею ввиду для каждого различными методами.
У меня именно сложность с пониманием механизма метода 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(); ...
Решение задачи: «.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>(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д