private static void Main() { MyNewCollection myQueue_1 = new MyNewCollection("Первая коллекция"); MyNewCollection myQueue_2 = new MyNewCollection("Вторая коллекция"); Journal j_1 = new Journal("Изменение в первой коллекции"); Journal jReference = new Journal("Изменение состояния в обеих коллекциях"); myQueue_1.CollectionCountChanged += new CollectionHandler(j_1.CollectionCountChanged); myQueue_1.CollectionReferenceChanged += new CollectionHandler(j_1.CollectionReferenceChanged); myQueue_1.CollectionReferenceChanged += new CollectionHandler(jReference.CollectionReferenceChanged); myQueue_2.CollectionReferenceChanged += new CollectionHandler(jReference.CollectionReferenceChanged); myQueue_1.Filling(); myQueue_2.Filling(); string[] menu = { "Добавить элемент в первую очередь.", "Добавить элемент во вторую очередь.", "Удалить элемент из первой очереди.", "Удалить элемент из второй очерели.", "Присвоить новые значение элементам первой очереди.", "Присвоить новые значения элементам второй очереди.", "Выход." }; while (true) { var idMenu = ReadLib.Print.Menu(0, menu); switch (idMenu) { case 1: { myQueue_1.AddDefault(); break; } case 2: { myQueue_2.AddDefault(); break; } case 3: { Console.Write("Введите индекс для удаления элемента из очереди: "); int id = ReadLib.ReadLib.ReadVGran(0); myQueue_1.Remove(id); break; } case 4: { Console.Write("Введите индекс для удаления элемента из очереди: "); int id = ReadLib.ReadLib.ReadVGran(0); myQueue_2.Remove(id); break; } case 5: { Console.Write("Введите индекс для изменения элемента из очереди: "); int id = ReadLib.ReadLib.ReadVGran(0); myQueue_1[id] = CreateIPerson.CreateElement <Student>(); break; } case 6: { Console.Write("Введите индекс для изменения элемента из очереди: "); int id = ReadLib.ReadLib.ReadVGran(0); myQueue_2[id] = CreateIPerson.CreateElement <Associate>(); break; } case 7: { return; } } } }
//Запросы private void Queries <T>() { string[] queriesMenu = { "Кол-во объектов.", "Печать объектов.", "Перегенерировать объекты", "Назад." }; while (true) { var sw = Print.Menu(0, queriesMenu); switch (sw) { case 1: var count = 0; foreach (var key in _persons.Keys) { try { count++; } catch { // ignored } } Console.WriteLine( "Кол-во объектов выбранного типа = {0}.\n\n\nДля продолженния нажать на любую клавишу...", count); Console.ReadKey(true); break; case 2: Console.WriteLine("Объекты выбранного типа: "); foreach (var key in _persons.Keys) { try { var element = (T)_persons[key]; CreateIPerson.Show(element); } catch { // ignored } } Console.WriteLine("\n\n\nДля продолженния нажать на любую клавишу..."); Console.ReadKey(true); break; case 3: count = 0; var tmp = new SortedDictionary <string, IPerson>(ClonaDictionary()); foreach (var key in tmp.Keys) { try { _persons.Remove(key); count++; } catch { // ignored } } for (var i = 0; i < count; i++) { var add = CreateIPerson.CreateElement <T>(); _persons.Add(add.Return_SeName() + " " + add.Return_Name(), add); } Console.WriteLine( "Объекты выбранного типы были перезаписаны.\n\n\nДля продолженния нажать на любую клавишу..."); Console.ReadKey(true); break; case 4: return; } } }
//Запросы private void Queries <T>() { string[] queriesMenu = { "Кол-во объектов.", "Печать объектов.", "Перегенерировать объекты", "Назад." }; while (true) { var sw = Print.Menu(0, queriesMenu); switch (sw) { case 1: var count = 0; foreach (var person in _stack) { try { count++; } catch { // ignored } } Console.WriteLine( "Кол-во объектов выбранного типа = {0}.\n\n\nДля продолженния нажать на любую клавишу...", count); Console.ReadKey(true); break; case 2: Console.WriteLine("Объекты выбранного типа: "); foreach (var person in _stack) { try { var element = (T)person; CreateIPerson.Show(element); } catch { // ignored } } Console.WriteLine("\n\n\nДля продолженния нажать на любую клавишу..."); Console.ReadKey(true); break; case 3: count = 0; var array = _stack.ToArray(); foreach (var person in _stack) { try { var element = (T)person; RemoveFromArray(ref array, (IPerson)element); count++; } catch { // ignored } } CreateStack(array); for (var i = 0; i < count; i++) { _stack.Push(CreateIPerson.CreateElement <T>()); } Console.WriteLine( "Объекты выбранного типы были перезаписаны.\n\n\nДля продолженния нажать на любую клавишу..."); Console.ReadKey(true); break; case 4: return; } } }
public void Start() { string[] mainMenu = { "Создать очередь.", "Проверка св-в коллекции.", "Проверка метода Contains.", "Проверка метода Clear.", "Проверка метода Dequeue.", "Проверка метода Enqueue.", "Проверка метода Peek.", "Проверка метода ToArray.", "Проверка метода Clone.", "Проверка метода CopyTo.", "Выход." }; var k = 9; while (true) { var sw = Print.Menu(k, mainMenu); switch (sw) { case 1: k = Create(); break; case 2: CurrentQueue(); Console.WriteLine("\nОбъем коллекции: {0}", _queue.Capacity); Console.WriteLine("\nКол-во элементов в последовательности: {0}", _queue.Count); Continue(); break; case 3: CurrentQueue(); IPerson person1 = new Student("Адам", "Арсанукаев", 1, 10); var person2 = _queue.Peek(); Console.WriteLine( "\nЧеловек " + person1.Return_SeName() + " " + person1.Return_Name() + " содержиться ли в очереди?\n{0}", _queue.Contains(person1)); Console.WriteLine( "\nЧеловек " + person2.Return_SeName() + " " + person2.Return_Name() + " содержиться ли в очереди?\n{0}", _queue.Contains(person2)); Continue(); break; case 4: CurrentQueue(); _queue.Clear(); Console.WriteLine("Очередь очищена..."); k = 0; Continue(); break; case 5: CurrentQueue(); var person = _queue.Dequeue(); Console.WriteLine("\nВывели человека: "); person.Show(); Console.WriteLine("\nОчередь после изменения: "); CurrentQueue(); Continue(); break; case 6: CurrentQueue(); var add = CreateIPerson.CreateElement <Associate>(); Console.WriteLine("\nДобавим в конец списка: "); add.Show(); _queue.Enqueue(add); Console.WriteLine("\nОчередь после изменения: "); CurrentQueue(); Continue(); break; case 7: CurrentQueue(); person = _queue.Peek(); Console.WriteLine("\nВывели человека: "); person.Show(); Console.WriteLine("\nОчередь не изменена: "); CurrentQueue(); Continue(); break; case 8: CurrentQueue(); var array = _queue.ToArray(); Console.WriteLine("Вывод массива: "); Output(array); Continue(); break; case 9: CurrentQueue(); var clone = new MyQueue <IPerson>(_queue); Console.WriteLine("Вывод копии: "); var cloneMyQueueWork = new MyQueueWork(clone); cloneMyQueueWork.Output(); break; case 10: CurrentQueue(); _queue.CopyTo(out array, _queue.Count / 2); Console.WriteLine("Вывод массива: "); Output(array); Continue(); break; case 11: return; } } }