C# Programming

Effizientes Abrufen von Indizes in C#-Iterationen

Spread the love

Die foreach-Schleife in C# ist eine bequeme Möglichkeit, um über Sammlungen zu iterieren, aber sie liefert nicht von Natur aus den Index der aktuellen Iteration. Dies kann unpraktisch sein, wenn man sowohl das Element als auch seinen Index benötigt. Dieser Artikel untersucht zwei effektive Methoden, um den Index innerhalb einer foreach-ähnlichen Iteration abzurufen.

Inhaltsverzeichnis

Verwendung der Select()-Methode von LINQ

Die Select()-Methode von LINQ bietet eine prägnante Möglichkeit, sowohl das Element als auch seinen Index zu erhalten. Sie transformiert die ursprüngliche Sammlung in eine neue Sequenz, in der jedes Element mit seinem Index gepaart ist.


using System;
using System.Collections.Generic;
using System.Linq;

public class ForeachIndexExample
{
    public static void Main(string[] args)
    {
        List<string> names = new List<string>() { "Alice", "Bob", "Charlie", "David" };

        // Verwendung von Select() um Index und Element zu erhalten
        var indexedNames = names.Select((name, index) => new { Name = name, Index = index });

        // Iteration durch die indizierte Sequenz
        foreach (var item in indexedNames)
        {
            Console.WriteLine($"Name: {item.Name}, Index: {item.Index}");
        }
    }
}

Dieser Code erstellt einen neuen anonymen Typ, der sowohl den Namen als auch seinen Index enthält. Die foreach-Schleife iteriert dann durch diese neue Sequenz und ermöglicht den Zugriff auf beide Informationen. Dieser Ansatz ist lesbar und funktioniert gut für Sammlungen beliebiger Größe.

Verwendung einer Standard-for-Schleife

Für eine verbesserte Leistung, insbesondere bei großen Sammlungen, bietet eine Standard-for-Schleife einen direkteren Ansatz. Dies vermeidet den Overhead der Erstellung einer neuen Sequenz.


using System;
using System.Collections.Generic;

public class ForeachIndexExample
{
    public static void Main(string[] args)
    {
        List<string> names = new List<string>() { "Alice", "Bob", "Charlie", "David" };

        // Verwendung einer for-Schleife mit Index
        for (int index = 0; index < names.Count; index++)
        {
            string name = names[index];
            Console.WriteLine($"Name: {name}, Index: {index}");
        }
    }
}

Diese Methode greift direkt über ihren Index auf Elemente zu. Obwohl sie keine foreach-Schleife verwendet, bietet sie eine effizientere Lösung für große Datensätze.

Die Wahl zwischen diesen Methoden hängt von Ihren Prioritäten ab. Die Select()-Methode bietet Lesbarkeit, während die for-Schleife eine bessere Leistung für größere Sammlungen bietet. Berücksichtigen Sie die Größe Ihrer Daten und die Bedeutung der Lesbarkeit bei Ihrer Auswahl.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert