//Клон
        private void Clone()
        {
            Console.WriteLine("Исходный словарь: ");
            Output();
            Console.WriteLine("\n\n\nСклонированный стэк: ");
            var clone = new SortedDictionaryWork(CloneDictionary());

            clone.Output();
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            ArrayList STATE = new ArrayList();

            State[] states = new State[50];
            bool    ok     = true;

            while (ok)
            {
                int choice = LiveMenu.Menu(headlines[0], paragraphs);
                switch (choice)
                {
                case 0:                                                                     //Создание коллекции
                    states = CreateCollection();
                    Console.ReadLine();
                    break;

                case 1:                                                                     //Просмотр коллекции
                    if (states[0] != null)
                    {
                        OutputArray(states);
                    }
                    else
                    {
                        Console.WriteLine();
                        Console.ForegroundColor = ConsoleColor.DarkRed;
                        Console.WriteLine("  Сначала необходимо создать коллекцию.");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.Write("\n  " + end);
                    }
                    Console.ReadLine();
                    break;

                case 2:                                                                      //Удаление объекта с заданным номером
                    if (states[0] != null)
                    {
                        DeleteElement(ref states);
                    }
                    else
                    {
                        Console.WriteLine();
                        Console.ForegroundColor = ConsoleColor.DarkRed;
                        Console.WriteLine("  Сначала необходимо создать коллекцию.");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.Write("\n  " + end);
                    }
                    Console.ReadLine();
                    break;

                case 3:                                                                      //Добавление объекта
                    if (states[0] != null)
                    {
                        STATE  = Add(ref states);
                        states = (State[])STATE.ToArray(typeof(State));
                        //преобразуем коллекцию в массив элементов типа State
                    }
                    else
                    {
                        Console.WriteLine();
                        Console.ForegroundColor = ConsoleColor.DarkRed;
                        Console.WriteLine("  Сначала необходимо создать коллекцию.");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.Write("\n  " + end);
                        Console.ReadLine();
                    }
                    break;

                case 4:                                                                      //Работа с запросами
                    int task = LiveMenu.Menu(headlines[0], requests);
                    switch (task)
                    {
                    case 0:                                                                  //Вывести количество объектов коллекции на данный момент
                        Console.ForegroundColor = ConsoleColor.Green;
                        Console.Write("\n  Количество объектов в коллекции на данный момент: ");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.Write(State.counter);
                        Console.ReadLine();
                        break;

                    case 1:                                                                  //Поиск объекта в коллекции
                        if (states[0] == null)
                        {
                            Console.WriteLine();
                            Console.ForegroundColor = ConsoleColor.DarkRed;
                            Console.WriteLine("  Сначала необходимо создать коллекцию.");
                            Console.ForegroundColor = ConsoleColor.White;
                            Console.Write("\n  " + end);
                            Console.ReadLine();
                        }
                        else
                        {
                            int sure = LiveMenu.Menu("  Коллекция будет отсортирована, вы уверены?", proof);
                            switch (sure)
                            {
                            case 0:
                                StateInterface[] StateSearch = states;
                                FindState(StateSearch);
                                break;

                            case 1:
                                break;
                            }
                        }
                        break;

                    case 2:                                                                   //Вывод республик
                        if (states[0] == null)
                        {
                            Console.WriteLine();
                            Console.ForegroundColor = ConsoleColor.DarkRed;
                            Console.WriteLine("  Сначала необходимо создать коллекцию.");
                            Console.ForegroundColor = ConsoleColor.White;
                            Console.Write("\n  " + end);
                            Console.ReadLine();
                        }
                        else
                        {
                            int R_counter = 0;
                            for (int i = 0; i < states.Length; i++)
                            {
                                if (states[i].t == "парламентарная" || states[i].t == "президентская" || states[i].t == "смешанная")
                                {
                                    states[i].Show();
                                    R_counter++;
                                }
                            }
                            Console.WriteLine("\n  Количество республик в коллекции: " + R_counter);
                            Console.Write("\n  " + end);
                            Console.ReadLine();
                        }
                        break;

                    case 3:                                                                   //Клонирование коллекции
                        Clone(states);
                        Console.ReadLine();
                        break;

                    case 4:                                                                   //Сортировка коллекции
                        if (states[0] != null)
                        {
                            StateInterface[] StateSort = states;
                            StateSort = Sort(StateSort);
                            states    = (State[])StateSort;
                            OutputArray(states);
                        }
                        else
                        {
                            Console.WriteLine();
                            Console.ForegroundColor = ConsoleColor.DarkRed;
                            Console.WriteLine("  Сначала необходимо создать коллекцию.");
                            Console.ForegroundColor = ConsoleColor.White;
                            Console.Write("\n  " + end);
                        }
                        Console.ReadLine();
                        break;

                    case 5:
                        break;
                    }
                    break;

                case 5:
                    var dictionary = new SortedDictionaryWork();
                    //IEnumerator myEnumerator =
                    //     dictionary.GetEnumerator();
                    dictionary.Start();
                    break;

                case 6:
                    ok = false;
                    break;
                }
            }
        }