Exemplo n.º 1
0
        public static void Main(string[] args)
        {
            House h1  = new House("Building 1", "3246  Timber Oak Drive", 4, 63000, 68);
            House h2  = new House("Building 2", "1140  Lynn Avenue", 3, 42000, 72);
            House h3  = new House("Building 3", "2721  Petunia Way", 6, 78000, 240);
            House h4  = new House("Building 4", "4992  Spring Avenue", 3, 33000, 74);
            House h5  = new House("Building 5", "414  Summit Street", 4, 54000, 98);
            House h6  = new House("Building 6", "664  Glenwood Avenue", 5, 80000, 152);
            House h7  = new House("Building 7", "1752  Browning Lane", 2, 24000, 49);
            House h8  = new House("Building 8", "3574  Big Indian", 4, 51000, 82);
            House h9  = new House("Building 9", "4218  Crummit Lane", 3, 58000, 78);
            House h10 = new House("Building 10", "4559  Holly Street", 4, 92000, 98);

            House[] houses = new House[10];
            houses[0] = h1;
            houses[1] = h2;
            houses[2] = h3;
            houses[3] = h4;
            houses[4] = h5;
            houses[5] = h6;
            houses[6] = h7;
            houses[7] = h8;
            houses[8] = h9;
            houses[9] = h10;

            string prn01 = "Назва:\t\tАдреса:\t\t\t\tКiлькiсть кiмнат:\tЦiна ($):\tПлоща (кв.м):";

            Console.WriteLine("Список без сортування");
            Console.WriteLine(prn01);
            for (int i = 0; i < houses.Length; i++)
            {
                Console.WriteLine(houses[i].Name + "\t" + houses[i].Address + "\t\t" + houses[i].Number_of_rooms + "\t\t\t" + houses[i].Price + "\t\t" + houses[i].Area);
            }

            while (true)
            {
                Console.WriteLine("\nНатиснiть на одну з вказаних клавiш, щоб вибрати режим роботи: ");
                Console.WriteLine("Реалiзацiя iнтерфейсу  IComparable для порiвняння будинкiв за цiною  - 1");
                Console.WriteLine("Реалiзацiя в класi iнтерфейсу IComparer для порiвняння будинкiв за цiною i за площею - 2");
                Console.WriteLine("Реалiзацiя iнтерфейсу IEnumerable - 3");
                Console.WriteLine("Вихiд з програми - будь-яка iнша клавiша");

                ConsoleKeyInfo cki;
                cki = Console.ReadKey(true);
                if (cki.Key == ConsoleKey.NumPad1)
                {
                    Array.Sort(houses);
                    Console.WriteLine("\nСортування за цiною");
                    Console.WriteLine(prn01);
                    for (int i = 0; i < houses.Length; i++)
                    {
                        Console.WriteLine(houses[i].Name + "\t" + houses[i].Address + "\t\t" + houses[i].Number_of_rooms + "\t\t\t" + houses[i].Price + "\t\t" + houses[i].Area);
                    }
                }
                else if (cki.Key == ConsoleKey.NumPad2)
                {
                    Array.Sort(houses, new House.SortByPrice());
                    Console.WriteLine("\nСортування за цiною");
                    Console.WriteLine(prn01);
                    for (int i = 0; i < houses.Length; i++)
                    {
                        Console.WriteLine(houses[i].Name + "\t" + houses[i].Address + "\t\t" + houses[i].Number_of_rooms + "\t\t\t" + houses[i].Price + "\t\t" + houses[i].Area);
                    }

                    Array.Sort(houses, new House.SortByArea());
                    Console.WriteLine("\nСортування за площею");
                    Console.WriteLine(prn01);
                    for (int i = 0; i < houses.Length; i++)
                    {
                        Console.WriteLine(houses[i].Name + "\t" + houses[i].Address + "\t\t" + houses[i].Number_of_rooms + "\t\t\t" + houses[i].Price + "\t\t" + houses[i].Area);
                    }
                }
                else if (cki.Key == ConsoleKey.NumPad3)
                {
                    Array.Sort(houses, new House.SortByPrice());
                    Houses HouseCollections01 = new Houses(houses);

                    Console.WriteLine("\nСортування за цiною");
                    Console.WriteLine(prn01);
                    foreach (var house in HouseCollections01)
                    {
                        Console.WriteLine(house.Name + "\t" + house.Address + "\t\t" + house.Number_of_rooms + "\t\t\t" + house.Price + "\t\t" + house.Area);
                    }

                    Array.Sort(houses, new House.SortByArea());
                    Houses HouseCollections02 = new Houses(houses);

                    Console.WriteLine("\nСортування за площею");
                    Console.WriteLine(prn01);
                    foreach (var house in HouseCollections02)
                    {
                        Console.WriteLine(house.Name + "\t" + house.Address + "\t\t" + house.Number_of_rooms + "\t\t\t" + house.Price + "\t\t" + house.Area);
                    }
                }
                else
                {
                    break;
                }
            }
        }