Q:

problemas com string e split C#

Tenho a seguinte função:
string str = "1 2 3 4 5"; //string para separar
string[] ArrayValor = str.Split(" ");
//nesse caso o array seria {"1","2","3","4","5"}

mas queria algo mais genérico, por exemplo, se o usuário colocasse "1-2-3-4-5", também queria que o array retornasse {"1", "2", "3", "4", "5"}
resumindo, quero apenas os números de uma string, não importando o que estiver entre eles.

A:

Pode fazer um split usando Regex, dessa maneira você pode considerar um padrão para separar a string.
Vamos considerar que nosso padrão para separar seja tudo que não seja um número exceto pontos (que podem estar entre os números)

^\d considero tudo que não seja um número
&\. e aqui adiciono o ponto como "exceção"

Exemplo:
var regexp = new Regex(@"[^\d&\.]");
var valor = "4.5+8-8d5+5.4";
var arrNumeros = regexp.Split(valor);
//arrNumeros = ["4.5", "8, "8", "5", "5.4"];

Veja o fiddle funcionando

A:

Tenta fazer algo onde vc pega o primeiro char do spliter, mas lembrando que você sempre terá que ter os mesmos caracteres em toda a string se não, não funciona!
Obs.: A string deve seguir um padrão sempre com a primeira letra seguida do "spliter" e manter o mesmo char do spliter para toda a string. Dá para melhorar bastante o código com validações, ai vai do seu gosto! Lembrando que isso é só uma ideia, e não algo concreto!
    string str = "1 2 3 4 5";
    string spliterType = str.Substring(1, 1);
   var strSplited = str.Split(Convert.ToChar(spliterType));

