static void Main(string[] args) { List<Duck> ducks = new List<Duck>() { new Duck() { Kind = KindOfDuck.Mallard, Size = 17 }, new Duck() { Kind = KindOfDuck.Muscovy, Size = 18 }, new Duck() { Kind = KindOfDuck.Decoy, Size = 14 }, new Duck() { Kind = KindOfDuck.Muscovy, Size = 11 }, new Duck() { Kind = KindOfDuck.Mallard, Size = 14 }, new Duck() { Kind = KindOfDuck.Decoy, Size = 13 }, }; DuckComparerBySize sizeComparer = new DuckComparerBySize(); ducks.Sort(sizeComparer); PrintDucks(ducks); DuckComparerByKind kindComparer = new DuckComparerByKind(); ducks.Sort(kindComparer); PrintDucks(ducks); DuckComparer comparer = new DuckComparer(); comparer.SortBy = SortCriteria.KindThenSize; ducks.Sort(comparer); PrintDucks(ducks); comparer.SortBy = SortCriteria.SizeThenKind; ducks.Sort(comparer); PrintDucks(ducks); // This keeps the output from disappearing before you can read it Console.ReadKey(); }
static void Main(string[] args) { List<Duck> ducks = new List<Duck>() { new Duck() { Kind = KindOfDuck.Mallard, Size = 17 }, new Duck() { Kind = KindOfDuck.Muscovy, Size = 18 }, new Duck() { Kind = KindOfDuck.Decoy, Size = 14 }, new Duck() { Kind = KindOfDuck.Muscovy, Size = 11 }, new Duck() { Kind = KindOfDuck.Mallard, Size = 14 }, new Duck() { Kind = KindOfDuck.Decoy, Size = 13 }, }; //ducks.Sort(); DuckComparerBySize compareBySize = new DuckComparerBySize(); DuckComparerByKind compareByKind = new DuckComparerByKind(); ducks.Sort(compareBySize); Console.WriteLine("Sort by size:"); PrintDucks(ducks); ducks.Sort(compareByKind); Console.WriteLine("Sort by kind:"); PrintDucks(ducks); Console.ReadKey(); }
static void Main(string[] args) { List<Duck> ducks = new List<Duck> { new Duck() {Kind= KindOfDuck.Mallard, Size = 17}, new Duck() {Kind= KindOfDuck.Muscovy, Size = 18}, new Duck() {Kind= KindOfDuck.Decoy, Size = 14}, new Duck() {Kind= KindOfDuck.Muscovy, Size = 11}, new Duck() {Kind= KindOfDuck.Mallard, Size = 14}, new Duck() {Kind= KindOfDuck.Decoy, Size = 13}, }; PrintDucks(ducks); // Prints initial list of ducks // Size comparer DuckComparerBySize sizeComparer = new DuckComparerBySize(); ducks.Sort(sizeComparer); Console.WriteLine("\rAnd now we will sort our ducks by size!\n"); Console.ReadKey(); // Output stab PrintDucks(ducks); // Prints sorted list of ducks // Kind comparer DuckComparerByKind kindComparer = new DuckComparerByKind(); ducks.Sort(kindComparer); Console.WriteLine("\rAnd now we will sort our ducks by kind!\n"); Console.ReadKey(); // Output stab PrintDucks(ducks); // Prints sorted list of ducks // Flexible comparer DuckComparer duckComparer = new DuckComparer(); duckComparer.SortBy = SortCriteria.SizeThenKind; // Comparison method choosing string comparisonMethod = duckComparer.SortBy.ToString(); Console.WriteLine("\rAnd now we will sort our ducks with more flexible comparer!\n" + "Comparison method: "+comparisonMethod); Console.ReadKey(); // Output stab ducks.Sort(duckComparer); PrintDucks(ducks); // Prints sorted list of ducks Console.ReadKey(); // Output stab }
static void Main(string[] args) { List<Duck> ducks = new List<Duck>() { new Duck() { Kind = KindOfDuck.Mallard, Size = 17 }, new Duck() { Kind = KindOfDuck.Muscovy, Size = 18 }, new Duck() { Kind = KindOfDuck.Decoy, Size = 14 }, new Duck() { Kind = KindOfDuck.Muscovy, Size = 11 }, new Duck() { Kind = KindOfDuck.Mallard, Size = 14 }, new Duck() { Kind = KindOfDuck.Decoy, Size = 13 }, }; IEnumerable<Bird> upcastDucks = ducks; DuckComparerBySize sizeComparer = new DuckComparerBySize(); DuckComparerByKind kindComparer = new DuckComparerByKind(); DuckComparer comparer = new DuckComparer(); PrintDucks(ducks); ducks.Sort(); PrintDucks(ducks); ducks.Sort(sizeComparer); PrintDucks(ducks); ducks.Sort(kindComparer); PrintDucks(ducks); comparer.SortBy = SortCriteria.KindThenSize; ducks.Sort(comparer); PrintDucks(ducks); comparer.SortBy = SortCriteria.SizeThenKind; ducks.Sort(comparer); PrintDucks(ducks); Console.ReadKey(); List<Bird> birds = new List<Bird>(); birds.Add(new Bird() {Name = "Feathers"}); birds.AddRange(upcastDucks); birds.Add(new Penguin() { Name = "George" }); foreach (Bird bird in birds) { Console.WriteLine(bird); } Console.ReadKey(); }
private static void DuckListTest() { ducks.Sort(); PrintDucks(ducks); IComparer<Duck> comparerSizeAsc = new DuckComparerBySize(Order.ASCENDING); IComparer<Duck> comparerSizeDesc = new DuckComparerBySize(Order.DESCENDING); IComparer<Duck> comparerKindAsc = new DuckComparerByKind(Order.ASCENDING); IComparer<Duck> comparerKindDesc = new DuckComparerByKind(Order.DESCENDING); ducks.Sort(comparerSizeAsc); PrintDucks(ducks); ducks.Sort(comparerSizeDesc); PrintDucks(ducks); ducks.Sort(comparerKindAsc); PrintDucks(ducks); ducks.Sort(comparerKindDesc); PrintDucks(ducks); }
static void Main(string[] args) { List<Duck> ducks = new List<Duck>(){ new Duck() {Kind = KindOfDuck.Mallard, Size = 17}, new Duck() {Kind = KindOfDuck.Muscovy, Size = 18}, new Duck() {Kind = KindOfDuck.Decoy, Size = 14}, new Duck() {Kind = KindOfDuck.Mallard, Size = 11}, new Duck() {Kind = KindOfDuck.Muscovy, Size = 14}, new Duck() {Kind = KindOfDuck.Decoy, Size = 13} }; Console.WriteLine("Ducks compared within class by size"); ducks.Sort(); PrintDucks(ducks); Console.WriteLine("Ducks compared with comparer class by size"); DuckComparerBySize sizeComparer = new DuckComparerBySize(); ducks.Sort(sizeComparer); PrintDucks(ducks); Console.WriteLine("Ducks compared with comparer class by kind"); DuckComparerByKind kindComparer = new DuckComparerByKind(); ducks.Sort(kindComparer); PrintDucks(ducks); DuckComparer comparer = new DuckComparer(); Console.WriteLine("Ducks compared with enum comparer class by kind then size"); comparer.SortBy = SortCriteria.KindThenSize; ducks.Sort(comparer); PrintDucks(ducks); Console.WriteLine("Ducks compared with enum comparer class by size then kind"); comparer.SortBy = SortCriteria.SizeThenKind; ducks.Sort(comparer); PrintDucks(ducks); Console.ReadKey(); }
static void Main(string[] args) { List <Duck> ducks = new List <Duck>() { new Duck() { Kind = KindOfDuck.Mallard, Size = 23 }, new Duck() { Kind = KindOfDuck.Decoy, Size = 45 }, new Duck() { Kind = KindOfDuck.Muscovy, Size = 12 }, new Duck() { Kind = KindOfDuck.Decoy, Size = 56 }, new Duck() { Kind = KindOfDuck.Mallard, Size = 22 }, new Duck() { Kind = KindOfDuck.Muscovy, Size = 55 } }; // print the ducks PrintDucks(ducks); // Duck Compare By Size Console.WriteLine("Sorting By Size.............."); DuckComparerBySize size = new DuckComparerBySize(); ducks.Sort(size); // print the ducks PrintDucks(ducks); // Duck Compare By Kind Console.WriteLine("Sorting By Kind.............."); DuckComparerByKind kind = new DuckComparerByKind(); ducks.Sort(kind); // print the ducks PrintDucks(ducks); //........ Sort By Comparer --> Size then Kind ................................................... DuckComparer comparerSizeThenKind = new DuckComparer { SortBy = SortCriteria.SizeThenKind }; ducks.Sort(comparerSizeThenKind); Console.WriteLine("Size then Kind...................."); // print the ducks PrintDucks(ducks); //........ Sort By Comparer --> kind then Size ................................................... DuckComparer comparerKindThenSize = new DuckComparer { SortBy = SortCriteria.SizeThenKind }; ducks.Sort(comparerKindThenSize); Console.WriteLine("Kind then Size...................."); // print the ducks PrintDucks(ducks); Console.ReadKey(); }