2009-09-10 9 views
5

Ich versuche, auf jeden Platz zu trennen "", aber es lässt mich nicht leere Einträge entfernen und dann die Länge finden, aber es wird als Syntaxfehler behandelt.Verwenden von .Split zum Entfernen von leeren Einträgen

Mein Code:

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

Was mache ich falsch?

+0

Was ist der Syntaxfehler? – Ray

+0

Zu lang für mich zu kopieren und einfügen hier, etwas über die Behandlung als ein Zeichen – Cyclone

Antwort

14

Nun, der erste Parameter der Split-Funktion muss ein Array von Zeichenfolgen oder Zeichen sein. Versuchen Sie:

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

Sie haben dies möglicherweise vorher nicht bemerkt, wenn Sie den 2. Parameter nicht angegeben haben. Dies liegt daran, dass die Methode Split eine Überladung aufweist, die ein ParamArray einbezieht. Das bedeutet, dass zu ruft Split("string 1", "string 2", "etc") auto-magisch in einen Aufruf konvertiert werden zu Split(New String() {"string 1", "string 2", "etc"})

+1

Kompiliert nicht, wenn strikte eingeschaltet ist. – Steven

7

Versuchen:

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

Das ist, was ich tat:

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

Ergebnis: Länge = 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); 
Verwandte Themen