Iteratoren (IEnumerable) sind ein .NET-Entwurfsmuster zur Erzeugung aufzählbarer Mengen, die mit for…each durchlaufen werden können. Das Schlüsselwort yield vereinfacht die Iterator-Implementierung erheblick. yield liefert ähnlich wie return einen Wert an den Aufrufer zurück.
Dieses Beispiel liefert eine Liste von Quadratzahlen zurück. - jedoch ohne die Liste, wie sonst üblich im Vorfeld aufzubauen, sondern peau à peau. Die verzögerte Ausführung von LINQ beruht auf yield.