How to use the iterator design pattern in C#

Take advantage of the iterator pattern to traverse aggregate objects without having to expose their underlying data structures

Become An Insider

Sign up now and get FREE access to hundreds of Insider articles, guides, reviews, interviews, blogs, and other premium content. Learn more.

The iterator design pattern is a commonly used pattern that provides a very useful abstraction. The iterator pattern is used to access and traverse the elements of a collection without the need to understand or expose the underlying structure of the collection.

Iterator is a behavioral design pattern in which you use an iterator to enumerate the elements of the container, i.e. the collection, in a sequential manner. Behavioral design patterns are those that manage object collaboration and the delegation of responsibilities among objects.

One of the advantages of the iterator pattern is that it allows you to modify the collection implementation without having to change the way the collection is accessed from the outside. As per the Dofactory, the Gang of Four defines the iterator design pattern as follows:

Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.

In this article we will walk through a simple implementation of the iterator design pattern using C#. The participants in a typical implementation of the iterator pattern include the following:

To continue reading this article register now