イテレータ
C#、VB.NETなどの.NET Frameworkに準拠する.NET言語において、反復子 (iterator) は値の順序付き列を産出 (yield) する文のブロック(狭義ではyield文を含むメソッド)を意味する。これを反復子ブロック (iterator block) とも呼ぶ。また、コレクションに対する列挙操作を行なう機能を提供するための媒介インターフェイスを列挙子 (enumerator) と呼び、IEnumeratorインターフェイスによって表す。IEnumeratorインターフェイスはMoveNext()メソッドを定義しており、このメソッドを使用することによりコレクション中の次の要素に進むと同時に、コレクションの末尾に到達するかどうかを判定する。Currentプロパティを使用することによってコレクション内部の要素を取得する。イテレータを最初の要素に戻す方法としてReset()メソッドが定義されるが、常に使用可能であるとは限らない。
列挙子を得るには通例IEnumerableインターフェイスを実装するオブジェクトのGetEnumerator()メソッドを呼び出す。一般的にコレクション クラスはこのIEnumerableインターフェイスを実装する。GetEnumerator()を明示的に呼び出さず、foreach文を代わりに使用することもできる(GetEnumerator()はコンパイラによって暗黙的に呼び出される)。IEnumeratorおよびIEnumerableインターフェイスは、.NET 2.0でジェネリック版 (System.Collections.Generic) として拡張された。