Heim > Backend-Entwicklung > C++ > Wie bekomme ich den Iterationsindex in einer C# foreach -Schleife?

Wie bekomme ich den Iterationsindex in einer C# foreach -Schleife?

Susan Sarandon
Freigeben: 2025-01-27 18:13:09
Original
1020 Leute haben es durchsucht

How Do I Get the Iteration Index in a C# Foreach Loop?

Zugriff auf den Iterationsindex in C#-Foreach-Schleifen

foreach Schleifen werden in C# häufig zum Durchlaufen von Sammlungen verwendet. Der direkte Zugriff auf den Iterationsindex innerhalb einer Standardschleife foreach wird jedoch nicht direkt unterstützt. Dieser Artikel beschreibt effiziente Methoden, um dies zu erreichen.

Nutzung von LINQ für den Indexzugriff

LINQs Select()-Methode bietet eine saubere Lösung. Wie in einem Beitrag von Ian Mercer auf dem Blog von Phil Haack dargestellt, ermöglicht dieser Ansatz das Abrufen sowohl des Elements als auch seines Index:

<code class="language-csharp">foreach (var item in Model.Select((value, i) => new { i, value }))
{
    var value = item.value;
    var index = item.i;
}</code>
Nach dem Login kopieren

Der Lambda-Ausdruck der Select()-Methode benötigt zwei Parameter: den Wert und seinen Index (i). Es wird ein neues anonymes Objekt erstellt, das beides enthält.

Leistungssteigerung mit ValueTuple (C# 7.0 und höher)

Für eine verbesserte Leistung, insbesondere bei größeren Sammlungen, bietet ValueTuple eine effizientere Alternative:

<code class="language-csharp">foreach (var item in Model.Select((value, i) => (value, i)))
{
    var value = item.value;
    var index = item.i;
}</code>
Nach dem Login kopieren

Dadurch wird das anonyme Objekt durch ein ValueTuple ersetzt, wodurch der Overhead reduziert wird.

Verbesserte Lesbarkeit durch Destrukturierung (C# 7.0 und höher)

Die Destrukturierung der Zuweisung verbessert die Klarheit des Codes weiter und vereinfacht den Zugriff auf den Index und den Wert:

<code class="language-csharp">foreach (var (value, i) in Model.Select((value, i) => (value, i)))
{
    // Access `value` and `i` directly.
}</code>
Nach dem Login kopieren

Dadurch entfällt die Notwendigkeit eines expliziten item.value- und item.i-Zugriffs. Diese Methode kombiniert die Leistungsvorteile von ValueTuple mit verbesserter Codelesbarkeit. Diese Techniken bieten effektive und effiziente Möglichkeiten zur Verwaltung von Iterationsindizes innerhalb der foreach-Schleifen von C#.

Das obige ist der detaillierte Inhalt vonWie bekomme ich den Iterationsindex in einer C# foreach -Schleife?. 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