Сортировка списка по типу элементов - C#

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

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

Помогите пожалуйста... есть список Фигур - List<Figure> list; в нем наследованные объекты класса квадрат, круг и прямоугольник; как мне его отсортировать по типу, что бы сначала шли квадраты, потом треугольники, потом уже круги обычная сортировка не прокатывает, сортирует не так, как нужно по условию

Решение задачи: «Сортировка списка по типу элементов»

textual
Листинг программы
 public class MyComparer : IComparer<Shape>
    {
 
        int IComparer<Shape>.Compare(Shape x, Shape y)
        {
            return (x.GetType() == y.GetType()) ? 0 : (x is Square && (y is Triangle | y is Circle) || (x is Circle && y is Triangle)) ? -1 : 1;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            List<Shape> figures = new List<Shape>() { new Square(), new Circle(), new Triangle(),new Square()};
 
            figures.Sort(new MyComparer());
            foreach(Shape shape in figures)
                Console.WriteLine(shape.GetType());
            Console.ReadLine();
        }
    }

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


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

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

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