Пример #1
0
        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();

        }
Пример #2
0
        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();
        }
Пример #3
0
        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
        }
Пример #4
0
        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();
        }
Пример #5
0
        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);
        }
Пример #6
0
        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();
        }
Пример #7
0
        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();
        }