Informiert wie ein Fuchs.

C# String Split: Trennzeichen und Beispiele

Mit String.Split zerlegst du in C# einen Text in ein Array von Teilzeichenfolgen. Lege zuerst fest, was als Trennzeichen gilt und ob leere Felder eine Bedeutung haben.

An einem Komma trennen

string eingabe = "rot,gruen,blau";
string[] farben = eingabe.Split(',');
Console.WriteLine(farben[1]); // gruen

Das Ergebnis enthält drei Elemente. Der Index beginnt bei null.

Mehrere Trennzeichen oder eine Zeichenfolge

string eingabe = "rot;gruen,blau";
char[] trenner = { ';', ',' };
string[] farben = eingabe.Split(trenner);
// "rot" | "gruen" | "blau"

string route = "Start--Zwischenhalt--Ziel";
string[] teile = route.Split(
    new string[] { "--" },
    StringSplitOptions.None);
// "Start" | "Zwischenhalt" | "Ziel"

Das Zeichenarray trennt an jedem enthaltenen Zeichen. Das Stringarray im zweiten Beispiel behandelt dagegen den doppelten Bindestrich als zusammengehörigen Trenner.

Leere Felder erhalten oder entfernen

string eingabe = "A,,B,";
string[] alle = eingabe.Split(',');
// "A", "", "B", ""

string[] ohneLeere = eingabe.Split(
    new char[] { ',' },
    StringSplitOptions.RemoveEmptyEntries);
// "A", "B"

Leere Formularfelder können fehlende Antworten darstellen. Entferne sie nicht, wenn die Position eines Feldes wichtig ist.

Leerzeichen an den Rändern entfernen

string eingabe = " A , , B ";
string[] teile = eingabe.Split(',');

for (int i = 0; i < teile.Length; i++)
{
    teile[i] = teile[i].Trim();
}
// "A", "", "B"

Hier bleibt das leere mittlere Feld bewusst erhalten.

Die Anzahl der Teile begrenzen

string einstellung = "token=abc=def";
string[] paar = einstellung.Split(
    new char[] { '=' }, 2, StringSplitOptions.None);
// "token" | "abc=def"

Die Grenze betrifft die Ergebnisanzahl. Der zweite Teil enthält hier den verbleibenden Text.

Vor dem Zugriff die Länge prüfen

string eingabe = "Name";
string[] felder = eingabe.Split(',');

if (felder.Length > 1)
{
    Console.WriteLine(felder[1]);
}
else
{
    Console.WriteLine("Das zweite Feld fehlt.");
}

Prüfe außerdem, ob die Eingabe selbst fehlt, bevor du eine Methode darauf aufrufst.

Grenzen von Split

CSV-Felder können selbst Kommas enthalten. Dafür genügt einfaches Trennen nicht: Ein geeigneter Parser muss auch Anführungszeichen und Formatregeln berücksichtigen.

Quelle für die Methodenvarianten: Microsoft: String.Split. Die Beispiele erläutern das Verhalten; ein ausgeführter Leistungstest wird nicht behauptet.