static void PartTwo() { BidirectionalRingList <Organization> organizations = new BidirectionalRingList <Organization>(); Console.WriteLine(" === Создан пустой двунаправленный колцевой список === "); organizations.AddToEnd(new Organization("Организация1", "Город1", 103)); organizations.AddToEnd(new Organization("Организация2", "Город2", 503)); organizations.AddToEnd(new Organization("Организация3", "Город3", 303)); organizations.AddToStart(new Organization("Организация4", "Город4", 203)); Console.WriteLine(" === Добавлены 4 элемента. Количество элементов в коллекции(Count) = " + organizations.Count + " === "); Console.WriteLine(); Console.WriteLine(" === Вывод с помощью foreach: === "); foreach (Organization org in organizations) { Console.WriteLine(org); } bool exist, notExist; exist = organizations.Contains(new Organization("Организация1", "Город1", 103)); notExist = organizations.Contains(new Organization("Организация15", "Город13", 103)); Console.WriteLine("\n === Существующий элемент: {0}", exist ? "Найден === " : "Не найден === "); Console.WriteLine(" === Не существующий элемент: {0}\n", notExist ? "Найден === " : "Не найден === "); organizations.ShowForward(); BidirectionalRingList <Organization> clone = new BidirectionalRingList <Organization>(); BidirectionalRingList <Organization> copy = new BidirectionalRingList <Organization>(); Console.WriteLine(); Console.WriteLine(" === Клонирование и поверхностное копирование коллекции === "); clone = (BidirectionalRingList <Organization>)organizations.Clone(); copy = organizations.Copy(); clone.ShowForward(); Console.WriteLine("\n === Удаление элемента с индексом 2 из коллекции === "); organizations.RemoveAt(2); Console.WriteLine(); Console.WriteLine(" === Клонирование === "); clone.ShowForward(); Console.WriteLine(); Console.WriteLine(" === Поверхностное копирование === "); copy.ShowForward(); }
public BidirectionalRingList(BidirectionalRingList <T> list) { Count = 0; Point p = list.beg; Point end2 = list.end; bool start = true; while (p.Prev != end2 || start == true) { AddToEnd(p.Data); p = p.Next; start = false; } /*p.Next = beg; * beg.Prev = end;*/ }
Point current; //текущий элемент коллекции public MyEnumerator(BidirectionalRingList <T> c) //конструктор { beg = c.beg; current = null; }