Выскакивает ошибка при сортировке, через 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);
}
}
}