Написать класс сравнения чисел, реализующий интерфейс срвнения iComparer - C#
Формулировка задачи:
Задача : Написать класс сравнения чисел, реализующий интерфейс сравнения iComparer<int>, который сортирует числа следующим образом:
Вот код класса:
Задача вроде легкая, но я тока начал изучать c# . Не понимаю почему у меня цифра 4 не уходит в конец.
У меня получается : 5, 5, 1, 2, 3, 4, 6, 55
А должно получится : 5, 5, 1, 2, 3, 6, 55, 4
- Все пятерки сначала
- Все четверки в конце
- Все остальные числа по возрастанию
Листинг программы
- 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;
- }
- }
- }
Решение задачи: «Написать класс сравнения чисел, реализующий интерфейс срвнения 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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д