Inhaltsverzeichnis:
Definition - Was bedeutet Iterator?
Ein Iterator im Kontext von C # ist ein Codeblock, der eine geordnete Folge von Werten einer Auflistung oder eines Arrays zurückgibt. Es ist eine Member-Funktion, die mithilfe des Iterator-Blocks implementiert wird, der eine oder mehrere Anweisungen enthält, die das Schlüsselwort "yield" enthalten.
Ein Iterator wird verwendet, um Verbrauchern einer Containerklasse, die eine Auflistung oder ein Array enthält, das Durchlaufen der Auflistung mit der Anweisung "foreach" auf einfachere Weise zu ermöglichen. Es wird mit stark typisierten Auflistungsklassen verwendet, um komplexe Datenstrukturen wie Binärbäume zu iterieren, die eine rekursive Durchquerung erfordern und den Iterationsstatus während der Rekursion beibehalten. Das Konzept des Iterators wird auch bei der Implementierung der verzögerten Ausführung in LINQ-Abfragen verwendet.
Techopedia erklärt Iterator
Der Iterator basiert auf einem Entwurfsmuster, das eine Methode zum Durchlaufen der Elemente einer Sammlung von Elementen nacheinander bereitstellt, ohne die zugrunde liegende Struktur der Sammlung aufzudecken. Das mühsame manuelle Implementieren der "IEnumerator" -Schnittstelle beim Erstellen von Auflistungsklassen, die die "foreach" -Anweisung unterstützen, entfällt. Der für die Implementierung der Methoden und Eigenschaften der IEnumerator-Schnittstelle erforderliche Intermediate Language-Code wird vom Compiler generiert. Dies führt zu einer einfacheren Syntax, einer geringeren Codegröße und einer Verbesserung der Entwicklerproduktivität.
Im Allgemeinen ähnelt ein Iterator einem Datenbankcursor dahingehend, dass er Zugriff auf Datenelemente in einer Auflistung bietet, jedoch keine Iteration durchführt. Ein Iterator kann in C # als Methode, Operator oder Get Accessor implementiert werden. Beispielsweise kann ein Iterator zum Durchlaufen einer Sammlung von Zeichenfolgen verwendet werden, um den Inhalt jeder Zeichenfolge in der Sammlung anzuzeigen.
Ein Iterator wird durch die IEnumerator-Schnittstelle dargestellt und vom Compiler mit den folgenden Methoden implementiert:
- MoveNext: Eine Methode, die zum nächsten Element der Auflistung vorrückt und das Ende dieser Auflistung angibt
- Current: Eine Eigenschaft, die den Wert des Elements abruft, auf das gerade verwiesen wird
- Entsorgen: Bereinigt die Iteration