Ranges mit Arrays und Zeichenfolgen
Erstellen Sie Ausschnitte aus Arrays, Spans und Teilzeichenfolgen.
Ranges mit Arrays und Zeichenfolgen ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 3 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.
Arrays ausschneiden
Die häufigste Verwendung von Bereichen ist das Ausschneiden von Array-Ausschnitten. array[1..3] gibt ein neues Array zurück, das die ausgewählten Elemente enthält.
using System;
int[] data = { 10, 20, 30, 40, 50 };
int[] middle = data[1..3];
Console.WriteLine(string.Join(",", middle)); // 20,30Array-Ausschnitte sind Kopien
Bei Arrays reserviert ein Bereichsausschnitt ein neues Array und kopiert die Elemente hinein. Änderungen am Ausschnitt wirken sich nicht auf das Original aus.
using System;
int[] original = { 1, 2, 3, 4 };
int[] slice = original[0..2];
slice[0] = 99;
Console.WriteLine(original[0]); // 1 (unchanged)
Console.WriteLine(slice[0]); // 99Teilzeichenfolgen mit Range
Der Indexer von string unterstützt Range. Dadurch erhalten Sie Teilzeichenfolgen, ohne Substring mit Versätzen und Längen aufzurufen.
using System;
string text = "Hello, World";
string hello = text[0..5];
Console.WriteLine(hello); // HelloZeichenfolgen-Ausschnitte vom Ende
Kombinieren Sie Bereiche mit ^, um das Ende einer Zeichenfolge auszuwählen, beispielsweise eine Dateierweiterung.
using System;
string file = "report.csv";
string ext = file[^3..];
Console.WriteLine(ext); // csvEinzelnes Zeichen mit Index
Die Indizierung einer Zeichenfolge mit einem einzelnen Index gibt ein char zurück. Verwenden Sie ^1 für das letzte Zeichen.
using System;
string s = "Coddy";
char last = s[^1];
Console.WriteLine(last); // yDas erste oder letzte Element entfernen
Mit Bereichen mit offenem Ende lässt sich ein Element ganz einfach entfernen: ..^1 entfernt das letzte, 1.. das erste Element.
using System;
string quoted = "[value]";
string inner = quoted[1..^1];
Console.WriteLine(inner); // valueEine Zeichenfolge in Teile aufteilen
Sie können Text anhand einer bekannten Position mithilfe von zwei Bereichsausschnitten aufteilen.
using System;
string code = "2026-05-30";
string year = code[..4];
string month = code[5..7];
string day = code[8..];
Console.WriteLine(year + " / " + month + " / " + day); // 2026 / 05 / 30Spans für Ausschnitte ohne Kopieren
Wenn Sie einen Ausschnitt ohne Allokation benötigen, verwenden Sie AsSpan(). Ein Span-Ausschnitt ist ein Fenster über dem ursprünglichen Speicher und keine Kopie.
using System;
ReadOnlySpan<char> span = "Hello, World".AsSpan();
ReadOnlySpan<char> word = span[7..];
Console.WriteLine(word.ToString()); // WorldBereiche in Schleifen
Sie können direkt mit foreach über ein ausgeschnittenes Array iterieren.
using System;
int[] data = { 2, 4, 6, 8, 10 };
foreach (int n in data[1..4])
Console.Write(n + " "); // 4 6 8
Console.WriteLine();Grenzen werden geprüft
Ausschnitte außerhalb des gültigen Bereichs lösen ArgumentOutOfRangeException aus. Dadurch schlagen versehentliche Lesezugriffe über die Grenzen hinaus sofort fehl, anstatt Daten zu beschädigen.
using System;
int[] d = { 1, 2, 3 };
try { var _ = d[1..10]; }
catch (ArgumentOutOfRangeException) { Console.WriteLine("slice out of bounds"); }Ein praktischer Parser
Hier ist ein winziger Parser, der mithilfe von Bereichen und IndexOf einen Namen und eine Domäne aus einer E-Mail-Adresse extrahiert.
using System;
string email = "ada@coddy.dev";
int at = email.IndexOf('@');
string user = email[..at];
string domain = email[(at + 1)..];
Console.WriteLine(user + " | " + domain); // ada | coddy.devSchnelltest
Prüfen Sie Ihr Verständnis von Bereichsausschnitten für Arrays und Zeichenfolgen.
Zusammenfassung
Sie haben gelernt, wie Bereiche auf Arrays und Zeichenfolgen angewendet werden.
array[1..3]gibt ein neues, kopiertes Array zurück.string[a..b]gibt eine Teilzeichenfolge zurück; ein einzelnerIndexgibt eincharzurück...^1und1..entfernen jeweils ein Element.AsSpan()erstellt Ausschnitte ohne Allokation.
Häufig gestellte Fragen
Ist die Lektion „Ranges mit Arrays und Zeichenfolgen“ kostenlos?
Ja — der vollständige Text von „Ranges mit Arrays und Zeichenfolgen“ 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 „Ranges mit Arrays und Zeichenfolgen“?
Erstellen Sie Ausschnitte aus Arrays, Spans und Teilzeichenfolgen. 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 3 von 4.
Wie lange dauert die Lektion „Ranges mit Arrays und Zeichenfolgen“?
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
- Der Index-Typ und der ^-Operator
- Der Range-Typ und der ..-Operator
- Ranges mit Arrays und Zeichenfolgen
- Benutzerdefinierte Typen mit Range-Unterstützung