Der folgende Code ist eine Übersetzung aus einer sehr häufig verwendeten Delphi-Funktion. Sie war Grundlage vieler Projekte, da Delphi von Haus aus keine Parsingmethode anbot.
public static string Parse(string Char, string S, int Count) { string T = string.Empty; if (S[S.Length-1].ToString() != Char) S += Char; for (int I = 1; I <= Count; I++) { if (S.Length == 0) return ""; T = S.Substring(0, S.IndexOf(Char)); S = S.Substring(S.IndexOf(Char)+1); } return T; }
Beispiel:
string foo1 = "foo1#foo2#foo3#hallo"; // der Ausgangsstring string teil1 = Parse("#", foo1, 1); // enthält: "foo1" string teil2 = Parse("#", foo1, 2); // enthält: "foo2" string teil4 = Parse("#", foo1, 4); // enthält: "hallo" string leer = Parse("#", foo1, 42); // enthält: "" (leer)
Ich gebe zu, dass das nicht gerade die effizienteste Methode ist einen String zu zerlegen, aber die Routine ist äusserst effektiv und einfach aufgebaut. Fehlverwendung ist praktisch ausgeschlossen.