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

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

Mary-Kate Olsen
Freigeben: 2025-01-27 17:56:10
Original
260 Leute haben es durchsucht

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

Zugriff auf den Iterationsindex innerhalb von C#-Foreach-Schleifen

C# foreach-Schleifen bieten eine übersichtliche Möglichkeit, Sammlungen zu durchlaufen. Der direkte Zugriff auf den Iterationsindex wird jedoch nicht grundsätzlich unterstützt. Hier sind mehrere Methoden, um dies zu erreichen:

1. Manueller Zähler:

Der einfachste Ansatz beinhaltet einen manuell inkrementierten Zähler:

<code class="language-csharp">int index = 0;
foreach (var item in myCollection)
{
    // Use 'item' and 'index'
    index++;
}</code>
Nach dem Login kopieren

2. LINQs Select mit Index:

Die Select-Methode von LINQ stellt eine Überladung bereit, die den Index enthält:

<code class="language-csharp">foreach (var item in myCollection.Select((value, index) => new { Value = value, Index = index }))
{
    var value = item.Value;
    var index = item.Index;
    // Use 'value' and 'index'
}</code>
Nach dem Login kopieren

Dadurch wird ein anonymer Typ erstellt, der sowohl den Wert als auch seinen Index enthält.

3. ValueTuple (C# 7.0 und höher):

Um die Leistung zu verbessern und Heap-Zuweisungen zu vermeiden (insbesondere bei großen Sammlungen), verwenden Sie ValueTuple:

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

Dies nutzt die Tupel-Dekonstruktion für eine sauberere Syntax.

4. For-Schleife (Alternative):

Für Situationen, die einen Indexzugriff erfordern, bietet eine Standardschleife for eine direktere Lösung:

<code class="language-csharp">for (int index = 0; index < myCollection.Count; index++)
{
    var item = myCollection[index];
    // Use 'item' and 'index'
}</code>
Nach dem Login kopieren

Dieser Ansatz wird im Allgemeinen bevorzugt, wenn der Index für die Logik der Schleife von entscheidender Bedeutung ist. Wählen Sie die Methode, die Ihrem Codierungsstil und Ihren Leistungsanforderungen am besten entspricht. Für einfache Fälle genügt ein Handzähler. Für größere Sammlungen oder komplexere Szenarien bietet LINQ mit ValueTuple ein Gleichgewicht zwischen Lesbarkeit und Effizienz. Die for-Schleife bleibt eine praktikable Option, wenn die Indexmanipulation für den Schleifenbetrieb von zentraler Bedeutung ist.

Das obige ist der detaillierte Inhalt vonWie kann ich in einer C# foreach -Schleife auf den 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