Написать класс сравнения чисел, реализующий интерфейс срвнения 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;
}