La meilleure approche dépend un peu de la souplesse que vous souhaitez donner à l'analyse syntaxique, en ce qui concerne les éventuels espaces supplémentaires et autres. Vérifiez les spécifications exactes du format pour voir ce dont vous avez besoin.
yourString.Split(new char[] { ':' }, 2)
Vous limitera à deux sous-chaînes. Cependant, cela ne coupe pas l'espace au début de la deuxième chaîne. Vous pouvez cependant le faire dans une deuxième opération après le fractionnement.
yourString.Split(new char[] { ':', ' ' }, 2,
StringSplitOptions.RemoveEmptyEntries)
Devrait fonctionner, mais se brisera si vous essayez de diviser un nom d'en-tête qui contient un espace.
yourString.Split(new string[] { ": " }, 2,
StringSplitOptions.None);
Fera exactement ce que vous décrivez, mais nécessite en fait la présence de l'espace.
yourString.Split(new string[] { ": ", ":" }, 2,
StringSplitOptions.None);
L'espace est facultatif, mais il faut quand même TrimStart()
dans le cas de plus d'un espace.
Pour que le format reste flexible et que votre code soit lisible, je vous suggère d'utiliser la première option :
string[] split = yourString.Split(new char[] { ':' }, 2);
// Optionally check split.Length here
split[1] = split[1].TrimStart();