¿Puedo dividir una cadena en estilo c # VB6 sin hacer referencia a Microsoft.VisualBasic?
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.
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.
¿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);