Heim > Backend-Entwicklung > C++ > Welche C#-Objekttypen unterstützen foreach-Schleifen und wie funktionieren sie?

Welche C#-Objekttypen unterstützen foreach-Schleifen und wie funktionieren sie?

Susan Sarandon
Freigeben: 2025-01-10 10:48:40
Original
597 Leute haben es durchsucht

Which C# Object Types Support foreach Loops and How Do They Work?

foreach-Schleife in C#

F: Welche Objekttypen unterstützen foreach-Schleife?

Antwort: Die Kernverwendung der foreach-Schleife erfordert eine MoveNext()-Methode, die ein Objekt mit einer Current-Methode und einer GetEnumerator()-Eigenschaft zurückgibt. Einfach ausgedrückt sind die häufigsten Typen diejenigen, die IEnumerable/IEnumerable<T> implementieren. Dazu gehören Implementierungen von ICollection/ICollection<T>, wie z. B. Collection<T>, List<T>, Arrays usw.

Wie funktioniert es?

Eine foreach(int i in obj) {...}-Schleife der Form foreach entspricht im Wesentlichen:

<code class="language-csharp">var tmp = obj.GetEnumerator();
int i; // C# 4.0及之前版本
while(tmp.MoveNext()) {
    int i; // C# 5.0及之后版本
    i = tmp.Current;
    {...} // 你的代码
}</code>
Nach dem Login kopieren
Das

IEnumerator-Objekt (tmp) wird verwendet, um die Elemente der Sammlung zu durchlaufen und sie bei jeder Iteration der Schleifenvariablen zuzuweisen. Wenn der Enumerator die Dispose()-Methode unterstützt, wird sie genauso aufgerufen wie mit der using-Anweisung.

Hinweis: Der Speicherort der Schleifenvariablendeklaration „int i“ unterscheidet sich zwischen C# 4.0 und C# 5.0. C# 5.0 deklariert es innerhalb der Schleife, während C# 4.0 es außerhalb der Schleife deklariert. Diese Unterscheidung ist wichtig, wenn Schleifenvariablen in Abschlüssen oder Lambda-Ausdrücken innerhalb von Schleifen verwendet werden.

Das obige ist der detaillierte Inhalt vonWelche C#-Objekttypen unterstützen foreach-Schleifen und wie funktionieren sie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage