2009-09-10 14 views
5

Sto cercando di dividere in ogni spazio "", ma non mi consente di rimuovere le voci vuote e quindi di trovare la lunghezza, ma viene trattato come un errore di sintassi.Utilizzo di .Split per rimuovere le voci vuote

Il mio codice:

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

Che cosa sto facendo di sbagliato?

+0

Qual è l'errore di sintassi? – Ray

+0

Troppo a lungo per me per copiare e incollare qui, qualcosa sul trattamento come un personaggio – Cyclone

risposta

14

Bene, il primo parametro della funzione Split deve essere un array di stringhe o caratteri. Prova:

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

Potresti non averlo notato prima quando non hai specificato il 2 ° parametro. Questo perché il metodo Split ha un sovraccarico che accetta un ParamArray. Ciò significa che chiama a Split("string 1", "string 2", "etc") auto-magicamente ottenere trasformato in una chiamata a Split(New String() {"string 1", "string 2", "etc"})

+1

Non si compila quando è attiva la rigida. – Steven

7

Prova:

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

Questo è quello che ho fatto:

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

Risultato: Lunghezza = 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); 
Problemi correlati