class C { public IEnumerator<int> GetEnumerator () { yield return 2; yield return 3; yield return 5; yield break; } }
bei Aufruf von MoveNext()
wird bis zum nächsten yield
gerechnet.
aufrufendes Programm und Iterator verhalten sich wie Co-Routinen (Programme mit stückweise verschränkter Ausführung).
(Beispiel Primzahlen.)