.NET 4.x Интерфейс IComparable, метод CompareTo - C#
Формулировка задачи:
public class Car:IComparable
{
public int CarID { get; set; }
public int CurrentSpeed { get; set; }
public string PetName { get; set; }
public Car(string name,int currSp,int id)
{
CurrentSpeed = currSp;
PetName = name;
CarID = id;
}
public Car() { }
int IComparable.CompareTo(object obj)
{
Car temp = obj as Car;
if (temp != null)
return this.CarID.CompareTo(temp.CarID);
else
throw new ArgumentException("Param isn't a Car");
}
}
static void Main(string[] args)
{
Car[] my =new Car[5];
my[0] = new Car("A", 10, 1);
my[1] = new Car("B", 20, 5);
my[2] = new Car("C", 30, 4);
my[3] = new Car("D", 40, 3);
my[4] = new Car("E", 50, 2);
foreach(Car c in my)
{
Console.WriteLine("{0} {1}",c.CarID,c.PetName);
}
Array.Sort(my);
Console.WriteLine();
Console.WriteLine("here is the ordered set of cars:");
foreach(Car c in my)
{
Console.WriteLine("{0} {1}", c.CarID, c.PetName);
}
}Решение задачи: «.NET 4.x Интерфейс IComparable, метод CompareTo»
textual
Листинг программы
[System.Security.SecurityCritical] // auto-generated [ResourceExposure(ResourceScope.None)] [MethodImplAttribute(MethodImplOptions.InternalCall)] [ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)] private static extern bool TrySZSort(Array keys, Array items, int left, int right);