Написать класс сравнения чисел, реализующий интерфейс срвнения iComparer - C#

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

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

Задача : Написать класс сравнения чисел, реализующий интерфейс сравнения iComparer<int>, который сортирует числа следующим образом:
  • Все пятерки сначала
  • Все четверки в конце
  • Все остальные числа по возрастанию
Вот я написал код основной программы:
class Program
    {
        static void Main(string[] args)
        {
            var list = new List<int>();
            list.Add(1);
            list.Add(2);
            list.Add(3);
            list.Add(4);
            list.Add(5);
            list.Add(6);
            list.Add(5);
            list.Add(55);
 
            list.Sort(new MyComparer());
            foreach (var i in list)
                Console.WriteLine(i);
            Console.ReadKey();
 
        }
    }
}
Вот код класса:
   class MyComparer : IComparer<int>
    {
        public int Compare(int x, int y)
        {
            if (x == 5) 
                return -1;
            else
            {
                if (x == 4) 
                    return 1;
                else
                    return 0;
            }
        }
    }
Задача вроде легкая, но я тока начал изучать c# . Не понимаю почему у меня цифра 4 не уходит в конец. У меня получается : 5, 5, 1, 2, 3, 4, 6, 55 А должно получится : 5, 5, 1, 2, 3, 6, 55, 4

Решение задачи: «Написать класс сравнения чисел, реализующий интерфейс срвнения iComparer»

textual
Листинг программы
public int Compare(int x, int y)
{
    if (x == y) return 0;
    if (x == 4) return 1;
    if (y == 4) return -1;
    if (x == 5) return -1;
    if (y == 5) return 1;
    return x - y;
}

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


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

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

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