Posso dividir uma string no estilo C# VB6 sem referenciar Microsoft.VisualBasic?

StackOverflow https://stackoverflow.com/questions/154706

  •  03-07-2019
  •  | 
  •  

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.

Foi útil?

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.

http://msdn.microsoft.com/en-us/library/8yttk7sy.aspx

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);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top