static void Main(string[] args) { // Creating an arary of car objects. car[] arrayOfCars = new car[4] { new car("Ford", 1932), new car("Boult", 1988), new car("Honda", 1967), new car("Fiat", 1978) }; Console.WriteLine("Default Unsorted Data\n"); foreach (car c in arrayOfCars) { Console.WriteLine(c.Make + "\t" + c.Year); } // IComparable by sorting array with "default" sort order. Array.Sort(arrayOfCars); Console.WriteLine("\nSorted by Make using IComparable\n"); foreach (car c in arrayOfCars) { Console.WriteLine(c.Make + "\t" + c.Year); } // Ascending sort of numeric value with IComparer. Array.Sort(arrayOfCars, car.sortYearAscending()); Console.WriteLine("\nSorted by Year using IComparer\n"); foreach (car c in arrayOfCars) { Console.WriteLine(c.Make + "\t" + c.Year); } Console.ReadLine(); }
int IComparer.Compare(object a, object b) { car c1 = (car)a; car c2 = (car)b; if (c1.year > c2.year) { return(1); } if (c1.year < c2.year) { return(-1); } else { return(0); } }
// Implement IComparable CompareTo to provide default sort order. int IComparable.CompareTo(object obj) { car c = (car)obj; return(String.Compare(this.make, c.make)); }