Posso dividir uma string no estilo C# VB6 sem referenciar Microsoft.VisualBasic?
Pergunta
Infelizmente, parece não haver string.split (String Separator), apenas string.split (char speparator).
Quero interromper minha corda com base em um separador de vários caracteres, a la vb6. Existe uma maneira fácil (isto é, não referenciando o Microsoft.visualbasic ou tendo que aprender regexes) para fazer isso em C#?
EDIT: Usando .NET Framework 3.5.
Solução
String.Split()
tem outras sobrecargas. Alguns deles tomam string[]
argumentos.
string original = "first;&second;&third";
string[] splitResults = original.Split( new string[] { ";&" }, StringSplitOptions.None );
Outras dicas
O regex para dividir a corda é extremamente simples, então eu seguiria essa rota.
Qual versão do .NET? Pelo menos 2,0 em diante inclui as seguintes sobrecargas:
.Split(string[] separator, StringSplitOptions options)
.Split(string[] separator, int count, StringSplitOptions options)
Agora, se eles apenas consertariam para aceitar algum ienumerableu003Cstring> em vez de apenas array.
A versão regex provavelmente é mais bonita, mas isso também funciona:
string[] y = { "bar" };
string x = "foobarfoo";
foreach (string s in x.Split(y, StringSplitOptions.None))
Console.WriteLine(s);
Isso imprimirá o Foo duas vezes.
string[] stringSeparators = new string[] {"[stop]"};
string[] result;
result = someString.Split(stringSeparators, StringSplitOptions.None);
através da http://msdn.microsoft.com/en-us/library/tabh47cf.aspx
Eu uso isso no .NET 2.0 o tempo todo.
string[] args = "first;&second;&third".Split(";&".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);