El mejor enfoque depende un poco de cuán flexible desee que sea el análisis, con respecto a posibles espacios adicionales y demás. Verifique las especificaciones de formato exactas para ver lo que necesita.
yourString.Split(new char[] { ':' }, 2)
Te limitará a 2 subcadenas. Sin embargo, esto no recorta el espacio al comienzo de la segunda cadena. Sin embargo, podría hacerlo en una segunda operación después de la división.
yourString.Split(new char[] { ':', ' ' }, 2,
StringSplitOptions.RemoveEmptyEntries)
Debería funcionar, pero se romperá si intenta dividir un nombre de encabezado que contiene un espacio.
yourString.Split(new string[] { ": " }, 2,
StringSplitOptions.None);
Hará exactamente lo que usted describe, pero en realidad requiere que el espacio esté presente.
yourString.Split(new string[] { ": ", ":" }, 2,
StringSplitOptions.None);
Hace que el espacio sea opcional, pero aún tendrá que hacerlo TrimStart()en caso de que haya más de un espacio.
Para mantener el formato algo flexible y su código legible, sugiero usar la primera opción:
string[] split = yourString.Split(new char[] { ':' }, 2);
split[1] = split[1].TrimStart();