IRONSOFTWAREHOME
ENTWICKLER-UPDATES

C# foreach mit Index (Wie es funktioniert)

Jacob Mellor, Chief Technology Officer @ Team Iron
Jacob Mellor
Updated: 21. April 2026

In C#, die foreach-Anweisung wird typischerweise verwendet, um über Sammlungen wie Arrays, Listen oder anderen aufzählbaren Typen zu iterieren. Allerdings bietet die foreach-Schleife keine integrierte Indexvariable, um die aktuelle Iteration zu verfolgen. Entwickler müssen oft auf den Index des aktuellen Elements zugreifen. Unten werden wir verschiedene Wege erkunden, um diese Funktionalität zu implementieren und die IronPDF-Bibliothek.

Die Grundlagen der foreach-Schleife

Die foreach-Schleife ist dazu ausgelegt, das Iterieren durch Arrays, Listen, Wörterbücher und andere Typen, die IEnumerable implementieren, zu vereinfachen. Hier ist ein einfaches Beispiel dafür, wie man eine foreach-Anweisung verwendet, um durch ein Array des Datentyps Integer zu iterieren:

int[] numbers = { 10, 20, 30, 40 };
foreach (int number in numbers)
{
    Console.WriteLine(number);
}

In diesem Beispiel steht number für das Element der Sammlung während jeder Iteration. Die Schleife iteriert automatisch durch alle Elemente im Array. Es gibt jedoch keinen integrierten Weg, um auf den Index des aktuellen Elements zuzugreifen.

Behandlung des Index in einer foreach-Schleife

Obwohl C# den Index in einer foreach-Schleife nicht direkt bereitstellt, können mehrere Techniken dies lösen. Lassen Sie uns diese Methoden im Detail besprechen.

Methode 1: Verwendung einer separaten Variable

Eine der einfachsten Möglichkeiten, den Index des aktuellen Elements zu erhalten, besteht darin, eine externe Indexvariable zu verwenden. Sie müssen sie manuell innerhalb der Schleife inkrementieren:

int[] numbers = { 10, 20, 30, 40 };
int numberIndex = 0;
foreach (int number in numbers)
{
    Console.WriteLine($"Index: {numberIndex}, Value: {number}");
    numberIndex++;
}

In diesem Code wird die Indexvariable vor dem Start der Schleife initialisiert und dann innerhalb der Schleife bei jeder Iteration inkrementiert. Während dieser Ansatz funktioniert, erfordert er die manuelle Pflege des Index, was nicht immer ideal ist.

Methode 2: Verwendung der Select-Methode von LINQ

Mit der Select-Methode von LINQ können Sie jedes Element einer Sammlung in eine neue Form projizieren, einschließlich seines Indexes. Hier ist ein Beispiel:

int[] numbers = { 10, 20, 30, 40 };
foreach (var item in numbers.Select((value, index) => new { value, index }))
{
    Console.WriteLine($"Index: {item.index}, Value: {item.value}");
}

In diesem Beispiel erstellt Select ein anonymes Objekt, das sowohl den Wert des aktuellen Elements als auch seinen Index enthält. Die foreach-Schleife kann dann über diese Objekte iterieren und sowohl auf den Index als auch den Wert direkt zugreifen.

Methode 3: Verwendung eines benutzerdefinierten Iterators

Sie können eine benutzerdefinierte Iteratorerweiterungsmethode mit dem Schlüsselwort yield return implementieren, um eine Methode zu erzeugen, die sowohl das aktuelle Element als auch seinen Index ergibt. Dies ist etwas fortgeschrittener, bietet aber eine flexible Lösung.

public static IEnumerable<(int index, T value)> WithIndex<t>(this IEnumerable<t> source)
{
    int index = 0;
    foreach (T value in source)
    {
        yield return (index, value);
        index++;
    }
}

Nun können Sie diese Erweiterungsmethode mit Ihren Sammlungen verwenden:

int[] numbers = { 10, 20, 30, 40 };
foreach (var (index, value) in numbers.WithIndex())
{
    Console.WriteLine($"Index: {index}, Value: {value}");
}

Dieser Ansatz schafft eine elegantere Lösung für das Problem der foreach mit Index, indem das manuelle Indexmanagement in eine wiederverwendbare Methode abstrahiert wird.

Verwendung einer while-Schleife für den Zugriff auf Indizes

Wenn Sie mit Sammlungen wie Arrays oder Listen arbeiten, können Sie eine While-Schleife in Verbindung mit einer Indexvariable verwenden, um sowohl auf den Index als auch auf das aktuelle Element zuzugreifen:

int[] numbers = { 10, 20, 30, 40 };
int index = 0;
while (index < numbers.Length)
{
    Console.WriteLine($"Index: {index}, Value: {numbers[index]}");
    index++;
}

C# foreach mit Index (Wie es für Entwickler funktioniert): Abbildung 1 - Indexausgabe

Diese Methode ermöglicht es Ihnen, sowohl auf den Index als auch auf das aktuelle Element direkt zuzugreifen, indem Sie die Indexvariable als Subskript für das Array oder die Liste verwenden.

Benutzerdefinierte Sammlungen und Iteratoren in .NET

Wenn Sie mit angepassten Sammlungen arbeiten, können Sie Ihre Iteratoren implementieren, um den Zugriff mit Indexen zu unterstützen. Durch die Implementierung des IEnumerable-Interfaces und die Verwendung der yield return-Anweisung können Sie Iteratoren erstellen, die sowohl das Element als auch seinen Index zurückgeben.

Hier ist ein Beispiel zum Erstellen einer benutzerdefinierten Sammlung, die IEnumerable implementiert:

public class CustomCollection<t> : IEnumerable<t>
{
    private T[] _items;
    public CustomCollection(T[] items)
    {
        _items = items;
    }
    public IEnumerator<t> GetEnumerator()
    {
        for (int i = 0; i < _items.Length; i++)
        {
            yield return _items[i];
        }
    }
    IEnumerator IEnumerable.GetEnumerator()
    {
        return GetEnumerator();
    }
}

Sie können dann diese benutzerdefinierte Sammlung in einer foreach-Schleife verwenden:

var customCollection = new CustomCollection<int>(new int[] { 10, 20, 30, 40 });
foreach (int number in customCollection)
{
    Console.WriteLine(number);
}

Durch die Implementierung der GetEnumerator-Methode und die Verwendung von yield return erstellen Sie einen Iterator, der es der foreach-Schleife ermöglicht, mit Ihrer benutzerdefinierten Sammlung genauso zu arbeiten wie mit jeder anderen Sammlung in .NET.

Verwendung von Wörterbüchern und Iteration mit Schlüssel-Werte-Paaren

Bei der Arbeit mit Dictionarys ermöglicht es die foreach-Schleife, direkt über Schlüssel-Werte-Paare zu iterieren. Dies ist ein häufiger Anwendungsfall, um sowohl den Schlüssel als auch den Wert während jeder Iteration zuzugreifen:

Dictionary<int, string> dict = new Dictionary<int, string>
{
    { 1, "Apple" },
    { 2, "Banana" },
    { 3, "Cherry" }
};
foreach (var kvp in dict)
{
    Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");
}

In diesem Beispiel gibt kvp.Key Ihnen den aktuellen Schlüssel und kvp.Value gibt Ihnen den aktuellen Wert.

Verwendung von IronPDF mit C# foreach-Schleife und Index

C# foreach mit Index (Wie es für Entwickler funktioniert): Abbildung 2 - IronPDF

IronPDF ist eine PDF-Bibliothek zum Umgang mit PDF-Erstellung aus HTML und anderen PDF-bezogenen Aufgaben in C#. Es ist auch mit dem neuesten .NET Framework kompatibel. Beim Generieren von PDFs mit IronPDF müssen Sie möglicherweise über eine Sammlung von Daten iterieren und dynamisch Inhalt in Ihre PDF-Datei einfügen. Die Kombination der foreach-Schleife mit Indexhandhabung ermöglicht es Ihnen, das Positionieren, Nummerieren oder benutzerdefinierte Logik basierend auf dem Index des aktuellen Elements in der Sammlung zu verwalten. Hier ist ein praktisches Beispiel für die Verwendung von IronPDF zur Erstellung eines PDFs, in dem jedes Element einer Sammlung zusammen mit seinem Index in das Dokument eingefügt wird.

using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        // Create a new PDF document renderer
        var pdf = new ChromePdfRenderer();
        
        // Sample data array
        string[] items = { "First Item", "Second Item", "Third Item" };
        
        // Initialize the HTML content with foreach loop and index
        string htmlContent = "<html><body>";
        int index = 0;
        foreach (var item in items)
        {
            htmlContent += $"<h2>Item {index + 1}: {item}</h2>";
            index++;
        }
        htmlContent += "</body></html>";
        
        // Render the HTML to PDF
        var pdfDocument = pdf.RenderHtmlAsPdf(htmlContent);
        
        // Save the PDF document
        pdfDocument.SaveAs("output.pdf");
        
        // Notify completion
        Console.WriteLine("PDF created successfully with indexed items.");
    }
}

Hier ist die Ausgabe-PDF-Datei:

C# foreach mit Index (Wie es für Entwickler funktioniert): Abbildung 3 - PDF-Ausgabe

Abschluss

In C#, obwohl die foreach-Schleife eine praktische Möglichkeit bietet, über Sammlungen zu iterieren, fehlt ihr die native Unterstützung für Indizes. Es gibt jedoch mehrere Möglichkeiten, dieses Limit zu überwinden. Egal ob Sie eine einfache Indexvariable, die Select-Methode von LINQ oder benutzerdefinierte Iteratoren verwenden, Sie können während der Iteration auf den Index des aktuellen oder nächsten Elements zugreifen. Das Verständnis dieser Techniken kann Ihnen helfen, die foreach-Schleife effizienter zu nutzen, insbesondere wenn Sie den Index jedes Elements wissen müssen.

Mit IronPDF müssen Sie sich nicht sofort verpflichten. Wir bieten eine kostenlose Testversion an, die es Ihnen ermöglicht, die Fähigkeiten der Software eingehend zu erkunden. Wenn Ihnen gefällt, was Sie sehen, beginnen die Lizenzen bei $999.

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der Pionierarbeit in der C# PDF-Technologie leistet. Als der ursprüngliche Entwickler hinter der Kern-Codebasis von Iron Software hat er die Produktarchitektur des Unternehmens seit seiner Gründung geprägt und es zusammen mit CEO Cameron Rimington in ein Unternehmen mit mehr als 50 Mitarbeitern verwandelt, das die NASA, Tesla und globale Regierungsbehörden beliefert.

...
Weiterlesen

Verwandte Artikel

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

OR
bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Buchen Sie Ihre kostenlose Live-Demo
Booking Badge

Von Millionen von Ingenieur*innen weltweit vertraut

Kundenlogos von Iron Software
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Kundenlogos von Iron Software
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.
C# NuGet-Bibliothek für PDF
Installation mit NuGet

Version: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Rechtsklick auf Referenzen, NuGet-Pakete verwalten
  2. Wählen Sie Durchsuchen und suchen Sie nach 'IronPDF'
  3. Paket auswählen und installieren
C# PDF DLL
Download DLL

Version: 2026.9

oder laden Sie den Windows-Installer hier herunter.

  1. Laden Sie IronPDF herunter und entpacken Sie es in ein Verzeichnis wie ~/Libs innerhalb Ihres Lösungsverzeichnisses
  2. Im Visual Studio-Projektmappen-Explorer klicken Sie mit der rechten Maustaste auf Referenzen. Wählen Sie Durchsuchen, "IronPDF.dll"

Lizenzen ab 749 $