//Создать коллекцию private void CreateDictionary() { _states = new SortedDictionary <string, StateInterface>(new DictComparer()); int size; while (true) { size = Input("Введите размер коллекции: "); if (size == 0) { Console.WriteLine("Введена пустая коллекция. Повторите ввод..."); } else { break; } } var array = IStateCreate.CreateArray(size); foreach (var element in array) { _states.Add(element.Return_GDP() + " " + element.Return_Name(), element); } }
//Запросы private void Queries <T>() { string[] queriesMenu = { "Количество объектов", "Печать объектов", "Перегенерировать объекты", "Назад" }; while (true) { var sw = LiveMenu.Menu("Выберите нужный пункт:", queriesMenu); switch (sw) { case 0: var count = 0; foreach (var key in _states.Keys) { try { var element = (T)_states[key]; count++; } catch { // ignored } } Console. WriteLine("Кол-во объектов выбранного типа = {0}.\n\n\nДля продолженния нажать на любую клавишу...", count); Console.ReadKey(true); break; case 1: Console.WriteLine("Объекты выбранного типа: "); foreach (var key in _states.Keys) { try { var element = (T)_states[key]; IStateCreate.Show(element); } catch { // ignored } } Console.WriteLine("\n\n\nДля продолженния нажать на любую клавишу..."); Console.ReadKey(true); break; case 2: count = 0; var tmp = new SortedDictionary <string, StateInterface>(CloneDictionary()); foreach (var key in tmp.Keys) { try { var element = (T)_states[key]; _states.Remove(key); count++; } catch { // ignored } } for (var i = 0; i < count; i++) { var add = IStateCreate.CreateElement <T>(); _states.Add(add.Return_GDP() + " " + add.Return_Name(), add); } Console. WriteLine("Объекты выбранного типы были перезаписаны.\n\n\nДля продолженния нажать на любую клавишу..."); Console.ReadKey(true); break; case 3: return; } } }