C#s yield
Schlüsselwort verstehen: Vereinfachung der Iteratorerstellung
Das Schlüsselwort yield
in C# vereinfacht die Erstellung von Iteratoren erheblich. Iteratoren stellen eine Folge von Werten bereit, ohne dass die gesamte Folge auf einmal im Speicher gespeichert werden muss. Diese „faule Auswertung“ verbessert die Effizienz, insbesondere beim Umgang mit großen Datenmengen.
Das Schlüsselwort yield
wandelt eine Standardschleife in eine Iteratormethode um. Diese Methode gibt ein Objekt zurück, das die IEnumerable<T>
-Schnittstelle implementiert (wobei T
der Typ der Elemente in der Sequenz ist). Wenn der Aufrufer mithilfe einer foreach
-Schleife iteriert, wird die Iteratormethode ausgeführt, wobei sie dank yield
.
Dadurch entfällt die manuelle Buchhaltung, die normalerweise mit der Iterator-Implementierung verbunden ist, was zu einem saubereren und besser wartbaren Code führt.
Betrachten Sie dieses Beispiel:
<code class="language-csharp">public IEnumerable<object> FilteredList() { foreach(object item in FullList) { if(IsItemInPartialList(item)) yield return item; } }</code>
FilteredList
gibt eine gefilterte Teilmenge von FullList
zurück. Die yield return
-Anweisung unterbricht die Ausführung, nachdem jedes passende Element gefunden wurde, und gibt dieses Element an den Aufrufer zurück. Der Iterator wird fortgesetzt, wenn das nächste Element angefordert wird.
yield
ist in verschiedenen Situationen von unschätzbarem Wert: beim Generieren von Sequenzen aus Abfragen, beim langsamen Lesen von Daten aus Dateien oder Datenbanken und beim Erstellen benutzerdefinierter Iteratoren für einzigartige Datenstrukturen. Seine Einführung in C# 2.0 hat die Einfachheit und Effizienz der Iteratorentwicklung erheblich verbessert.
Das obige ist der detaillierte Inhalt vonWie vereinfacht das Keyword von 'Ertrag' die Iterator -Erstellung in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!