collections/list/1/prog.cs - Four different activations of the List.Sort method. | Lecture 12 - slide 15 : 36 Program 1 |
using System; using System.Collections.Generic; class C{ public static void Main(){ List<int> listOriginal = new List<int>{5, 3, 2, 7, -4, 0}, list; // Sorting by means of the default comparer of int: list = new List<int>(listOriginal); ReportList(list); list.Sort(); ReportList(list); Console.WriteLine(); // Equivalent - explicit notatation of the Comparer: list = new List<int>(listOriginal); ReportList(list); list.Sort(Comparer<int>.Default); ReportList(list); Console.WriteLine(); // Equivalent - explicit instantiation of an IntComparer: list = new List<int>(listOriginal); ReportList(list); list.Sort(new IntComparer()); ReportList(list); Console.WriteLine(); // Similar - use of a delegate value for comparison: list = new List<int>(listOriginal); ReportList(list); list.Sort(delegate(int x, int y){ if (x < y) return -1; else if (x == y) return 0; else return 1;}); ReportList(list); Console.WriteLine(); } public static void ReportList<T>(List<T> list){ foreach(T el in list) Console.Write("{0, 3}", el); Console.WriteLine(); } } public class IntComparer: Comparer<int>{ public override int Compare(int x, int y){ if (x < y) return -1; else if (x == y) return 0; else return 1; } }