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

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

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

Добрый день. Есть класс содержащий три поля реализующий интерфейс IComparable
        public class Table : IComparable<Table>
    {
        public double a{get; set;}     
        public double b{get; set;}  
        public double c{get; set;}              
            
        public int CompareTo(Table obj)
        {
           return a.CompareTo(obj.a);
        } 
     }
Далее создаю экземпляр класс и вызываю метод Sort();
List<Table> tab = new List<Table>();
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
Листинг программы
public int CompareTo(Table obj)
{
    int compareResult;
            
    compareResult = a.CompareTo(obj.a);
    if (compareResult == 0) compareResult = b.CompareTo(obj.b);
 
    return compareResult;
}

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


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

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

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