¿Puedo dividir una cadena en estilo c # VB6 sin hacer referencia a Microsoft.VisualBasic?

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

  •  03-07-2019
  •  | 
  •  

Pregunta

Desafortunadamente, parece que no hay string.Split (separador de cadena), solo string.Split (char speparator).

Quiero dividir mi cadena basada en un separador de varios caracteres, a la VB6. ¿Existe una manera fácil (es decir, no haciendo referencia a Microsoft.VisualBasic o teniendo que aprender RegExes) para hacer esto en c #?

EDITAR: Uso de .NET Framework 3.5.

¿Fue útil?

Solución

String.Split() tiene otras sobrecargas. Algunos de ellos toman string[] argumentos.

string original = "first;&second;&third";
string[] splitResults = original.Split( new string[] { ";&" }, StringSplitOptions.None );

Otros consejos

la expresión regular para la división de cadenas es extremadamente simple, así que seguiría esa ruta.

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

¿Qué versión de .Net? Al menos 2.0 en adelante incluye las siguientes sobrecargas:

.Split(string[] separator, StringSplitOptions options)  
.Split(string[] separator, int count, StringSplitOptions options)

Ahora, si solo lo arreglaran para aceptar cualquier IEnumerable < string > en lugar de solo matriz.

La versión regex es probablemente más bonita, pero esto también funciona:

string[] y = { "bar" };

string x = "foobarfoo";
foreach (string s in x.Split(y, StringSplitOptions.None))
      Console.WriteLine(s);

Esto imprimirá foo dos veces.

 string[] stringSeparators = new string[] {"[stop]"};
    string[] result;
result = someString.Split(stringSeparators, StringSplitOptions.None);

a través de http://msdn.microsoft.com/en-us/ library / tabh47cf.aspx

Lo uso en .NET 2.0 todo el tiempo.

string[] args = "first;&second;&third".Split(";&".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top