IRONSOFTWAREHOME
ENTWICKLER-UPDATES

C# Indexer (So funktioniert es für Entwickler)

Jacob Mellor, Chief Technology Officer @ Team Iron
Jacob Mellor
Updated: 19. Juli 2026

Ein Indexer in C# ist ein spezieller Typ von Eigenschaft, der es ermöglicht, auf Instanzen einer Klasse oder Struktur mit dem Array-Zugriffsoperator [] zuzugreifen. Indexer können sehr nützlich sein, um "intelligente Arrays" zu erstellen oder Daten in einer vereinfachten Syntax zu kapseln. Sie bieten eine Möglichkeit, Instanzen einer Klasse so zu verwenden, wie Sie Arrays verwenden würden, wobei Sie auf Daten über einen Index zugreifen können. Dieser Artikel wird untersuchen, wie man C#-Indexer mit praktischen Beispielen deklariert und verwendet. Und wir werden am Ende des Artikels auch die IronPDF-Bibliothek erkunden.

Basische Indexer-Syntax

Ein Indexer ist ein Instanzmitglied, das das Schlüsselwort this in einer Klasse oder Struktur verwendet, gefolgt von der Indexerdeklaration. Sie geben auch die Parametertypen und den Rückgabetyp an. Die allgemeine Syntax für ein Indexer-Instanzmitglied sieht so aus:

public return_type this[parameter_type index]
{
    get
    {
        // Code to return data
    }
    set
    {
        // Code to set data
    }
}

Hier ist return_type der Werttyp, den der Indexer zurückgeben wird, wie zum Beispiel ein ganzzahliger Wert, und parameter_type ist der Typ des Indexes, oft ein int. Der get-Accessor gibt den Wert am angegebenen Index zurück, und der set-Blockcode-Accessor weist diesem Index einen Wert zu.

Indexer Erklärung und Verwendung

Wir werden eine grundlegende Darstellung der Implementierung eines Indexers in einer C#-Klasse untersuchen. Betrachten Sie eine Klasse Program, die ein Array von Zeichenketten kapselt.

class Program
{
    private string[] values = new string[5]; // Array with 5 elements
    public string this[int index]
    {
        get
        {
            return values[index];
        }
        set
        {
            values[index] = value;
        }
    }
}

Im obigen Code:

  • Die Program-Klasse enthält ein Zeichenkettenarray namens values.
  • Die string this[int index] ist die Indexerdeklaration, wobei die int index die indexparametrisierte Eigenschaft ist, mit der auf Elemente des Arrays zugegriffen wird.
  • Der get-Accessor gibt den indizierten Wert am angegebenen Index zurück, und der set-Accessor weist diesem Index einen indizierten Wert zu.

Das bedeutet, dass Sie eine Instanz der Program-Klasse erstellen und auf deren values-Array mit dem Indexer zugreifen können, wie folgt:

class Program
{
    static void Main()
    {
        Program program = new Program();
        // Set values using indexer
        program[0] = "First";
        program[1] = "Second";
        // Access values using indexer
        Console.WriteLine(program[0]); // Output: First
        Console.WriteLine(program[1]); // Output: Second
    }
}

In diesem Code sehen Sie, dass der Indexer eine einfache Syntax zum Zugriff auf das values-Array bietet, ähnlich wie Sie auf Elemente in einem Array zugreifen würden.

Verständnis der get- und set-Accessors

Die get- und set-Accessors im Indexer sind wie Blockcode, der es Ihnen ermöglicht, Daten abzurufen und zuzuweisen, ähnlich wie Sie es mit Eigenschaften tun würden. Der Hauptunterschied besteht darin, dass Indexer einen Indexparameter verwenden, um mit Datenkollektionen statt mit einzelnen Datenmitgliedern zu arbeiten.

Der get-Block ist verantwortlich für das Zurückgeben der Daten am angegebenen Index, während der set-Block Daten dem angegebenen Index zuweist. Hier ist ein weiteres Beispiel, um Ihr Verständnis zu festigen:

class StudentRecords
{
    private string[] studentNames = new string[3];
    public string this[int index]
    {
        get
        {
            if (index >= 0 && index < studentNames.Length)
            {
                return studentNames[index];
            }
            return "Invalid Index";
        }
        set
        {
            if (index >= 0 && index < studentNames.Length)
            {
                studentNames[index] = value;
            }
        }
    }
    public int Length
    {
        get { return studentNames.Length; }
    }
}

In diesem Beispiel:

  • Die StudentRecords-Klasse verfügt über ein privates string[] studentNames-Array, das die Namen der Studierenden hält.
  • Der Indexer überprüft, ob der Index innerhalb der Grenzen des Arrays liegt, bevor der Wert gesetzt oder abgerufen wird.
  • Eine Eigenschaft vom Typ int Length bietet Zugriff auf die Länge des Arrays.

Sie können diese Klasse im Main-Methode wie folgt verwenden:

class Program
{
    public static void Main()
    {
        StudentRecords records = new StudentRecords();
        // Set values using indexer
        records[0] = "John";
        records[1] = "Jane";
        records[2] = "Bob";
        // Access values using indexer
        for (int i = 0; i < records.Length; i++)
        {
            Console.WriteLine(records[i]);
        }
    }
}

Erstellung eines generischen Indexers

Sie können auch generische Klassen mit Indexern erstellen, die es Ihrem Code ermöglichen, mehrere Datentypen zu verarbeiten. Hier ist ein einfaches Beispiel für eine generische Klasse mit einem generischen Indexer:

class GenericClass<t>
{
    private T[] elements = new T[5];
    public T this[int index]
    {
        get
        {
            return elements[index];
        }
        set
        {
            elements[index] = value;
        }
    }
    public int Length
    {
        get { return elements.Length; }
    }
}

In diesem Code:

  • Die Klasse GenericClass definiert einen Indexer, der mit jedem Datentyp funktionieren kann.
  • Der this[int index]-Indexer ermöglicht Ihnen den Zugriff auf die Elemente im Array, unabhängig vom Typ.

Sie können nun den GenericClass mit unterschiedlichen Datentypen in der Main-Methode verwenden:

class Program
{
    public static void Main()
    {
        GenericClass<int> intArray = new GenericClass<int>();
        intArray[0] = 10;
        intArray[1] = 20;

        GenericClass<string> stringArray = new GenericClass<string>();
        stringArray[0] = "Hello";
        stringArray[1] = "World";

        // Output the integer array values
        for (int i = 0; i < intArray.Length; i++)
        {
            Console.WriteLine(intArray[i]);
        }

        // Output the string array values
        for (int i = 0; i < stringArray.Length; i++)
        {
            Console.WriteLine(stringArray[i]);
        }
    }
}

Verwendung von IronPDF mit C# Indexer

C# Indexer (Wie es für Entwickler funktioniert): Abbildung 1 - IronPDF

IronPDF ist eine C#-Bibliothek, die für die Erstellung, Bearbeitung und Konvertierung von PDFs in .NET-Anwendungen entwickelt wurde. Sie vereinfacht die Arbeit mit PDFs für Entwickler, um PDFs aus HTML zu erstellen, PDF-Dateien zu manipulieren und fortschrittliche Funktionalitäten wie das Zusammenführen, Drucken und Hinzufügen von Signaturen programmgesteuert zu bearbeiten.

Sie können IronPDF in Ihren C#-Programmen verwenden, die Indexer nutzen, um PDF-Inhalte dynamisch zu erstellen und zu verwalten. Stellen Sie sich zum Beispiel vor, Sie haben eine Klasse, die HTML-Zeichenfolgen speichert, und Sie möchten mit einem Indexer für jeden HTML-Eintrag PDFs generieren. Dieser Ansatz vereinfacht die PDF-Erstellung, während Ihr Code organisiert und intuitiv bleibt.

using IronPdf;
using System;

class PdfGenerator
{
    private string[] htmlTemplates = new string[3];
    public string this[int index]
    {
        get { return htmlTemplates[index]; }
        set { htmlTemplates[index] = value; }
    }

    public void GeneratePdf(int index, string outputPath)
    {
        var renderer = new ChromePdfRenderer();
        var pdfDocument = renderer.RenderHtmlAsPdf(this[index]); // Access HTML string using indexer
        pdfDocument.SaveAs(outputPath);
    }
}

class Program
{
    public static void Main()
    {
        PdfGenerator pdfGen = new PdfGenerator();
        // Populate HTML templates
        pdfGen[0] = "<h1>First Document</h1><p>This is the first PDF.</p>";
        pdfGen[1] = "<h1>Second Document</h1><p>This is the second PDF.</p>";
        pdfGen[2] = "<h1>Third Document</h1><p>This is the third PDF.</p>";

        // Generate PDFs using the indexer
        pdfGen.GeneratePdf(0, "first.pdf");
        pdfGen.GeneratePdf(1, "second.pdf");
        pdfGen.GeneratePdf(2, "third.pdf");

        Console.WriteLine("PDFs generated successfully.");
    }
}

C# Indexer (Wie es für Entwickler funktioniert): Abbildung 2 - Konsolenausgabe

Abschluss

C#-Indexer sind ein nützliches Feature, das Ihnen hilft, Ihre Klassen und Strukturen wie Arrays verhalten zu lassen. Durch die Bereitstellung einer vereinfachten Syntax und flexiblen Datenzugriff können Sie intuitiveren und lesbareren Code erstellen. Egal, ob Sie mit Zeichenfolgen, Ganzzahlen oder einem anderen Datentyp arbeiten, Indexer geben Ihnen die Möglichkeit, Ihre Datenstruktur zu kapseln und sie sauber und effizient über Indizes zuzugreifen.

IronPDF macht es einfach, mit einer kostenlosen Testversion zu beginnen, die Ihnen Zugriff auf alle Funktionen gibt, die Sie zum Erstellen, Bearbeiten und Rendern von PDFs benötigen. Sie können sich Zeit nehmen, die Software zu erkunden, und sobald Sie zufrieden sind, sind Lizenzen ab $999 erhältlich.

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 $