public MyQueue <T> Clone() { var newQueue = new MyQueue <T>(Capacity); foreach (T cloneElement in this) { newQueue.Enqueue(cloneElement); } return(newQueue); }
//Создать очередь из готовой private void CreateFromReady() { var tmpQueue = new MyQueue <IPerson>(); var add = CreateIPerson.CreateArray(10); foreach (var addElement in add) { tmpQueue.Enqueue(addElement); } _queue = new MyQueue <IPerson>(tmpQueue); }
public ClassEnumerator(MyQueue <T> t) { _currElement = t.QueueElement; }
//Элементы и емкости другой последовательность(not ready) public MyQueue(MyQueue <T> queue) { Capacity = queue.Capacity; Count = queue.Count; QueueElement = queue.QueueElement; }
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; } } }
public MyQueueWork(MyQueue <IPerson> queue) { _queue = queue; }