Heim >Backend-Entwicklung >C++ >Wie funktionieren Foreach-Schleifen in C# und welche Klassen implementieren sie?
foreach
Schleifen von C# und ihre Implementierung verstehenWelche Klassen verwenden foreach
Schleifen?
Die foreach
-Schleife in C# wird häufig mit Klassen genutzt, die IEnumerable
oder IEnumerable<T>
implementieren. Dazu gehört jede Klasse, die eine GetEnumerator()
-Methode bereitstellt, die ein IEnumerator
oder IEnumerator<T>
zurückgibt. Dies deckt im Wesentlichen alle Klassen ab, die ICollection
oder ICollection<T>
implementieren, wie z. B. Arrays, Listen und andere Sammlungen.
foreach
Schleifenmechanik:
Eine Standard-foreach
-Schleife (z. B. foreach (int i in obj) { ... }
) ähnelt funktional dieser:
<code class="language-csharp">var tmp = obj.GetEnumerator(); int i; // C# 4.0 and earlier while (tmp.MoveNext()) { int i; // C# 5.0 and later i = tmp.Current; { ... } // Loop body }</code>
Wichtige Überlegungen: Wenn der Enumerator (tmp
) IDisposable
implementiert, wird er verworfen (ähnlich einer using
-Anweisung). Die Deklaration von int i
unterscheidet sich je nach C#-Version. In C# 5.0 und höher wird es innerhalb der Schleife deklariert; frühere Versionen deklarieren es außerhalb. Diese Unterscheidung ist entscheidend, wenn i
innerhalb anonymer Methoden oder Lambda-Ausdrücke innerhalb der Schleife verwendet wird.
Das obige ist der detaillierte Inhalt vonWie funktionieren Foreach-Schleifen in C# und welche Klassen implementieren sie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!