0Pricing
C# Academy · Lektion

Der Index-Typ und der ^-Operator

Verweisen Sie vom Ende einer Collection aus auf Elemente.

Der Index-Typ und der ^-Operator ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C# Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C# Academy-Kurs umfasst insgesamt 4 Lektionen.

Der Indextyp

C# stellt den dedizierten Typ System.Index bereit, mit dem Sie eine Position innerhalb einer Sequenz beschreiben können. Anders als ein einfacher int kann ein Index eine Position darstellen, die vom Ende einer Sammlung aus gezählt wird, nicht nur von deren Anfang.

Dadurch wird Code wie „Geben Sie mir das letzte Element“ ausdrucksstark und sicher.

using System;

int[] numbers = { 10, 20, 30, 40, 50 };
Index first = 0;
Console.WriteLine(numbers[first]); // 10

Der ^-Operator (vom Ende)

Der Dachoperator ^ erstellt einen Index, der vom Ende aus zählt. ^1 bezeichnet das letzte Element, ^2 das vorletzte und so weiter.

Beachten Sie, dass ^1 der letzte gültige Index ist, während ^0 Length entspricht und hinter dem Ende liegt.

using System;

int[] numbers = { 10, 20, 30, 40, 50 };
Console.WriteLine(numbers[^1]); // 50 (last)
Console.WriteLine(numbers[^2]); // 40

Index als eigenständiger Wert

Ein Index ist ein echter Wert, den Sie in einer Variablen speichern, an Methoden übergeben und wiederverwenden können. Dadurch werden die Position und die Sammlung voneinander getrennt.

using System;

int[] data = { 1, 2, 3, 4, 5 };
Index last = ^1;
Index secondLast = ^2;
Console.WriteLine(data[last]);       // 5
Console.WriteLine(data[secondLast]); // 4

IsFromEnd und Value

Jeder Index stellt zwei Eigenschaften bereit: Value (den ganzzahligen Versatz) und IsFromEnd (gibt an, ob er mit ^ erstellt wurde).

using System;

Index fromStart = 2;
Index fromEnd = ^2;
Console.WriteLine(fromStart.Value + " " + fromStart.IsFromEnd); // 2 False
Console.WriteLine(fromEnd.Value + " " + fromEnd.IsFromEnd);     // 2 True

GetOffset bestimmt die Position

Ein vom Ende aus gezählter Index ist erst sinnvoll, wenn Sie die Länge der Sammlung kennen. Index.GetOffset(length) wandelt ihn in einen konkreten, bei 0 beginnenden Versatz um.

using System;

Index fromEnd = ^1;
int length = 5;
int offset = fromEnd.GetOffset(length);
Console.WriteLine(offset); // 4

^0 liegt hinter dem Ende

Da ^0 in Length aufgelöst wird, löst die Indizierung damit eine Ausnahme aus. Der Wert ist nur als exklusive obere Grenze eines Bereichs nützlich, wie Sie in der nächsten Lektion sehen werden.

using System;

int[] data = { 1, 2, 3 };
try {
    Console.WriteLine(data[^0]); // out of range!
} catch (IndexOutOfRangeException) {
    Console.WriteLine("^0 is past the end");
}

Index funktioniert mit vielen Sammlungen

Jeder Typ mit einem Indexer sowie einer Length- oder Count-Eigenschaft (und der entsprechenden Unterstützung) kann Index verwenden. Arrays, string und Span<T> funktionieren ohne zusätzliche Konfiguration.

using System;

string word = "Coddy";
Console.WriteLine(word[^1]); // y
Console.WriteLine(word[^5]); // C

Indizes dynamisch berechnen

Sie können einen Index aus einer Ganzzahl zur Laufzeit erstellen, indem Sie den ^-Operator auf eine Variable anwenden.

using System;

int[] data = { 5, 10, 15, 20 };
int n = 2;
Index idx = ^n;            // ^ works on variables too
Console.WriteLine(data[idx]); // 15

Index im Vergleich zu einfachem int

Ein einfacher int zählt immer vom Anfang aus. Index ergänzt die Möglichkeit, vom Ende aus zu zählen, lässt sich aber weiterhin implizit aus int konvertieren, sodass vorhandener Code weiterhin funktioniert.

using System;

Index a = 1;   // implicit from int
Index b = ^1;  // from end
Console.WriteLine(a.IsFromEnd); // False
Console.WriteLine(b.IsFromEnd); // True

Off-by-one-Fehler vermeiden

Um das letzte Element zu erreichen, mussten Sie bisher arr[arr.Length - 1] lesen. Mit ^1 ist die Absicht ausdrücklich erkennbar, und es gibt keine fehleranfällige Arithmetik.

using System;

int[] scores = { 88, 92, 79, 95 };
Console.WriteLine(scores[scores.Length - 1]); // old way: 95
Console.WriteLine(scores[^1]);                // new way: 95

Index in echtem Code

Hier ist eine kleine Hilfsfunktion, die mithilfe von ^1 das letzte Element eines beliebigen Arrays zurückgibt und dadurch die Aufrufstelle übersichtlich hält.

using System;

static T Last<T>(T[] items) => items[^1];

int[] nums = { 3, 6, 9, 12 };
Console.WriteLine(Last(nums)); // 12

Schnelltest

Testen Sie Ihr Verständnis des Typs Index und des Operators ^.

Zusammenfassung

Sie haben gelernt, dass System.Index eine Position darstellt, die entweder vom Anfang oder mit dem Operator ^ vom Ende aus gezählt werden kann.

  • ^1 bezeichnet das letzte Element; ^0 entspricht Length (eine Position hinter dem Ende).
  • Index verfügt über Value, IsFromEnd und GetOffset(length).
  • Der Typ wird implizit aus int konvertiert und funktioniert mit Arrays, Zeichenfolgen und Spans.

Häufig gestellte Fragen

Ist die Lektion „Der Index-Typ und der ^-Operator“ kostenlos?

Ja — der vollständige Text von „Der Index-Typ und der ^-Operator“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C# Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C# Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Der Index-Typ und der ^-Operator“?

Verweisen Sie vom Ende einer Collection aus auf Elemente. Du übst C# Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C# Academy zu starten?

Keine Vorkenntnisse erforderlich. C# Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Der Index-Typ und der ^-Operator“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C# Academy-Lektion Code schreiben und ausführen?

Ja. Jede C# Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Der Index-Typ und der ^-Operator
  2. Der Range-Typ und der ..-Operator
  3. Ranges mit Arrays und Zeichenfolgen
  4. Benutzerdefinierte Typen mit Range-Unterstützung
← Zurück zu C# Academy