2009-09-10 14 views
5

Estoy intentando dividir en cada espacio "", pero no me permitirá eliminar entradas vacías y luego encontrar la longitud, pero se trata como un error de sintaxis.Usar. División para eliminar entradas vacías

Mi código:

TextBox1.Text.Split(" ", StringSplitOptions.RemoveEmptyEntries).Length 

¿Qué estoy haciendo mal?

+0

¿Cuál es el error de sintaxis? – Ray

+0

Demasiado tiempo para copiar y pegar aquí, algo sobre tratar como un personaje – Cyclone

Respuesta

14

Bueno, el primer parámetro para la función Split debe ser una matriz de cadenas o caracteres. Pruebe:

TextBox1.Text.Split(New String() {" "}, StringSplitOptions.RemoveEmptyEntries).Length 

Es posible que no haya notado esto antes cuando no especificó el 2 ° parámetro. Esto se debe a que el método Split tiene una sobrecarga que incluye un ParamArray. Esto significa que las llamadas a Split("string 1", "string 2", "etc") auto-mágicamente se convierten en una llamada a Split(New String() {"string 1", "string 2", "etc"})

+1

No se compila cuando está activado el modo estricto. – Steven

7

Probar:

TextBox1.Text.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Length 
2

Esto es lo que hice:

TextBox1.Text = "1 2 3 5 6" 
TextBox1.Text.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Length 

Resultado: Longitud = 5

1
// char array is used instead of normal char because ".Split()" 
// accepts a char array 
char[] c = new char[1]; 
//space character in array 
c[0] = ' '; 
// a new string array is created which will hold whole one line 
string[] Warray = Line.Split(c, StringSplitOptions.RemoveEmptyEntries); 
Cuestiones relacionadas