Der beste Ansatz hängt ein wenig davon ab, wie flexibel das Parsen im Hinblick auf mögliche zusätzliche Leerzeichen und dergleichen sein soll. Überprüfen Sie die genauen Formatspezifikationen, um festzustellen, was Sie benötigen.
yourString.Split(new char[] { ':' }, 2)
Begrenzt Sie auf zwei 2 Teilzeichenfolgen. Dadurch wird jedoch das Leerzeichen am Anfang der zweiten Zeichenfolge nicht gekürzt. Sie können dies jedoch in einer zweiten Operation nach der Aufteilung tun.
yourString.Split(new char[] { ':', ' ' }, 2,
StringSplitOptions.RemoveEmptyEntries)
Sollte funktionieren, wird aber unterbrochen, wenn Sie versuchen, einen Headernamen zu teilen, der ein Leerzeichen enthält.
yourString.Split(new string[] { ": " }, 2,
StringSplitOptions.None);
Wird genau das tun, was Sie beschreiben, erfordert aber tatsächlich, dass der Raum vorhanden ist.
yourString.Split(new string[] { ": ", ":" }, 2,
StringSplitOptions.None);
Macht den Speicherplatz optional, aber Sie müssen immer noch TrimStart()mehr als einen Speicherplatz verwenden.
Um das Format etwas flexibel und Ihren Code lesbar zu halten, empfehle ich die erste Option:
string[] split = yourString.Split(new char[] { ':' }, 2);
split[1] = split[1].TrimStart();