CompareTo для нескольких элементов - C#

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

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

Добрый день. Есть класс содержащий три поля реализующий интерфейс IComparable
Листинг программы
  1. public class Table : IComparable<Table>
  2. {
  3. public double a{get; set;}
  4. public double b{get; set;}
  5. public double c{get; set;}
  6. public int CompareTo(Table obj)
  7. {
  8. return a.CompareTo(obj.a);
  9. }
  10. }
Далее создаю экземпляр класс и вызываю метод Sort();
Листинг программы
  1. List<Table> tab = new List<Table>();
  2. tab.Sort();
Происходит сортировка по полю a. Подскажите как надо изменить метод CompareTo чтобы сортировка происходила сначала по полю a, если поля a одинаковые, то по полю b. Или надо писать отдельный метод для этого? Пример: Исходные данные: a b c 3 8 6 2 5 3 3 5 1 Должно получиться так: a b c 2 5 3 3 5 1 3 8 6

Решение задачи: «CompareTo для нескольких элементов»

textual
Листинг программы
  1. public int CompareTo(Table obj)
  2. {
  3.     int compareResult;
  4.            
  5.     compareResult = a.CompareTo(obj.a);
  6.     if (compareResult == 0) compareResult = b.CompareTo(obj.b);
  7.  
  8.     return compareResult;
  9. }

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


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

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

11   голосов , оценка 4.182 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы