Heim > Backend-Entwicklung > C++ > Wie kann ich in einer C#-foreach-Schleife auf den aktuellen Iterationsindex zugreifen?

Wie kann ich in einer C#-foreach-Schleife auf den aktuellen Iterationsindex zugreifen?

Barbara Streisand
Freigeben: 2025-01-27 18:01:10
Original
527 Leute haben es durchsucht

How Can I Access the Current Iteration Index in a C# foreach Loop?

Abrufen des Iterationsindex in einem C# foreach -Sloop

abrufen

c#'s foreach Loop bietet keinen von Natur aus Zugriff auf den Iterationsindex. Wir können jedoch die Select -Methode von Linq geschickt anwenden, um dies zu erreichen.

Der Ansatz von

Ian Mercer, der die Überlastung von Select verwendet, die einen Lambda -Ausdruck mit Wert- und Indexparametern akzeptiert, ist hochwirksam:

<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 (value, i) => new { i, value } erstellt ein anonymer Objekt, das sowohl das Element (value) als auch seinen Index enthält (i).

Für eine bessere Leistung und um unnötige Haufen Zuweisungen (insbesondere bei großen Sammlungen) zu vermeiden, sollten Sie ValueTuple (ab C# 7.0 verfügbar):

erhältlich erwägen:
<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

Noch prägnanter und nutzt die Zerstörungsfunktionen von C#, wir können direkt auf den Wert und den Index zugreifen:
<code class="language-csharp">foreach (var (value, i) in Model.Select((value, i) => (value, i)))
{
    // Access `value` and `i` directly here.
}</code>
Nach dem Login kopieren

foreach Diese Methoden ermöglichen es Ihnen effektiv, den aktuellen Iterationsindex zu erhalten, während Sie eine

-Schoption verwenden, wodurch Sie eine höhere Kontrolle und Flexibilität in Ihrem Code bieten.

Das obige ist der detaillierte Inhalt vonWie kann ich in einer C#-foreach-Schleife auf den aktuellen Iterationsindex zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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