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.