2009-09-10 12 views
5

Próbuję podzielić w każdym miejscu "", ale nie pozwala mi usunąć puste wpisy, a następnie znaleźć długość, ale jest traktowane jako błąd składni.Używanie .Split do usuwania pustych wpisów

Mój kod:

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

Co robię źle?

+0

Jaki jest błąd składni? – Ray

+0

Zbyt długi czas kopiowania i wklejania tutaj, coś o traktowaniu jako postaci – Cyclone

Odpowiedz

14

Cóż, pierwszy parametr funkcji Split musi być tablicą ciągów lub znaków. Wypróbuj:

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

Być może wcześniej tego nie zauważyłeś, gdy nie określiłeś drugiego parametru. Wynika to z faktu, że metoda Split ma przeciążenie, które przyjmuje parametr ParamArray. Oznacza to, że wzywa do Split("string 1", "string 2", "etc") auto-magicznie się przekształcić w wywołaniu Split(New String() {"string 1", "string 2", "etc"})

+1

Nie kompiluje się, gdy włączone jest ustawienie ścisłe. – Steven

7

Spróbuj:

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

To co zrobiłem:

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

Wynik: Długość = 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); 
Powiązane problemy