2009-09-10 9 views
5

J'essaye de diviser à chaque espace "", mais il ne me laissera pas enlever des entrées vides et alors trouver la longueur, mais il est traité comme une erreur de syntaxe.Utiliser .Split pour supprimer les entrées vides

Mon code:

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

Qu'est-ce que je fais mal?

+0

Quelle est l'erreur de syntaxe? – Ray

+0

Trop long pour moi de copier et coller ici, quelque chose à propos de traiter comme un personnage – Cyclone

Répondre

14

Eh bien, le premier paramètre de la fonction Split doit être un tableau de chaînes ou de caractères. Essayez:

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

Vous n'avez peut-être pas remarqué cela auparavant lorsque vous n'avez pas spécifié le 2ème paramètre. C'est parce que la méthode Split a une surcharge qui prend dans un ParamArray. Cela signifie que les appels à Split("string 1", "string 2", "etc") automatique par magie se converti en un appel à Split(New String() {"string 1", "string 2", "etc"})

+1

Ne compile pas lorsque strict est activé. – Steven

7

Essayez:

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

Voici ce que je faisais:

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

Résultat: Longueur = 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); 
Questions connexes