static void Main(string[] args) { #region 结构实现 ConcreteAggregate a = new ConcreteAggregate(); a[0] = "Item A"; a[1] = "Item B"; a[2] = "Item C"; a[3] = "Item D"; ConcreteIterator i = a.CreateIterator() as ConcreteIterator; Console.WriteLine("Iterating over collection:"); object item = i.First(); while (item != null) { Console.WriteLine(item); item = i.Next(); } #endregion Console.WriteLine("******************************"); #region 实践应用 Practical.ExtrinsicIterator.Iterator _iterator; Practical.ExtrinsicIterator.Aggregate _aggregate = new Practical.ExtrinsicIterator.ConcreteAggregate(); // 获得迭代器 _iterator = _aggregate.CreateIterator(); while (!_iterator.IsDone()) { Console.WriteLine(_iterator.CurrentItem()); _iterator.Next(); } Practical.IntrinsicIterator.Iterator _iterator1; Practical.IntrinsicIterator.Aggregate _aggregate1 = new Practical.IntrinsicIterator.ConcreteAggregate(); // 获得迭代器 _iterator1 = _aggregate1.CreateIterator(); while (!_iterator1.IsDone()) { Console.WriteLine(_iterator1.CurrentItem()); _iterator1.Next(); } #endregion Console.ReadKey(); }