Выскакивает ошибка при сортировке, через OrderBy: "At least one object must implement IComparable"

Здраствуйте! Подскажите, пожалуйста, почему при сортировке, если добавляю в письмо один объект, то ошибки нет, а если больше, то выбивает ошибка: "At least one object must implement IComparable". Как ее исправить?

public class Date
{

    public int Year = DateTime.Now.Year;
    public int Month = DateTime.Now.Month;
    public int Day = DateTime.Now.Day; 
    public int Hours = DateTime.Now.Hour; 
    public int Minutes = DateTime.Now.Minute; 

    public Date() { }

    public Date(int Year, int Month, int Day, int Hours, int Minutes)
    {
        this.Year = Year;
        this.Month = Month;
        this.Day = Day;
        this.Hours = Hours;
        this.Minutes = Minutes;
    }
    public override string ToString()
    {
        return $"{Year}-{Month}-{Day} {Hours}:{Minutes}";
    }
}

public class Airplane : Date
{
    public string StartCity { get; set; } 
    public string FinishCity { get; set; }
    public Date StartDate { get; set; }
    public Date FinishDate { get; set; } 

    public Airplane() { }

    public Airplane(string StartCity, string FinishCity, Date StartDate, Date FinishDate)
    {
        this.StartCity = StartCity;
        this.FinishCity = FinishCity;
        this.StartCity = StartCity;
        this.FinishCity = FinishCity;
    }
}



class Program : Airplane
{
    static void PrintAirplanes(List<Airplane> airplanes)
    {
        foreach (var i in airplanes)
        {
            Console.WriteLine($"{i.StartCity}\n { i.FinishCity}\n { i.StartDate}\n { i.FinishDate}");
        }
    }

    static List<Airplane> SortAirplanesByDate(List<Airplane> airplanes)
    {
        List<Airplane> sorted = airplanes.OrderBy(x => x.StartDate)
                                   .ToList();
        return sorted;

    }

    static void Main(string[] args)
    {
        try
        {
            Airplane a = new Airplane();
            a.StartCity = "Kiev";
            a.FinishCity = "Oslo";
            a.StartDate = new Date(2000, 05, 13, 10, 00);
            a.FinishDate = new Date(2000, 05, 13, 12, 00);

            List<Airplane> airplanes = new List<Airplane>();

            airplanes.Add(a);

            Airplane a1 = new Airplane();
            a1.StartCity = "Kiev";
            a1.FinishCity = "Oslo";
            a1.StartDate = new Date(2000, 05, 13, 12, 00);
            a1.FinishDate = new Date(2000, 05, 13, 13, 00);
            airplanes.Add(a1);

            List<Airplane> Sortairplanes = SortAirplanesByDate(airplanes);
            foreach (Airplane air in Sortairplanes)
            {
                air.ToString();
            }

            Console.WriteLine("\n");
            PrintAirplanes(airplanes);
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
}

Ответы (0 шт):