81 votes

Comment vérifier si un StringBuilder est vide ?

Je veux tester si le StringBuilder est vide mais il n'y a pas de méthode ou de propriété IsEmpty.

Comment détermine-t-on cela?

15 votes

sb.Length == 0 ?

0 votes

@LasseV.Karlsen Oh, si facile :/ Désolé, je suis débutant en C#.

2 votes

Le fait qu'Intellisense dise "Obtient ou définit la longueur de l'objet StringBuilder", combiné avec le fait que le constructeur prend une capacité comme argument et le fait qu'on ne peut pas DÉFINIR la longueur d'une chaîne existante conduisent à penser que Length reflète probablement la capacité. Le fait que c'est la réponse est hautement contre-intuitif.

109voto

Mong Zhu Points 15038

Si vous regardez la documentation de StringBuilder, il n'a que 4 propriétés. L'une d'elles est Length.

La longueur d'un objet StringBuilder est définie par son nombre d'objets Char.

Vous pouvez utiliser la propriété Length:

Obtient ou définit la longueur de l'objet StringBuilder actuel.

StringBuilder sb = new StringBuilder();

if (sb.Length != 0)
{
    // vous avez trouvé une différence
}

Une autre possibilité serait de le traiter comme une chaîne de caractères en utilisant la méthode String.IsNullOrEmpty et de condenser le constructeur en une chaîne de caractères en utilisant la méthode ToString. Vous pouvez même saisir la chaîne résultante et l'assigner à une variable que vous utiliseriez si vous avez trouvé des différences:

string difference = ""; 

if (!String.IsNullOrEmpty(difference = sb.ToString()))
{
    Console.WriteLine(difference);      
}

4 votes

Il aurait été facile de mettre public bool Empty { get; } = this.Length == 0;. Étrange qu'ils n'aient pas eu cette idée.

0 votes

@Boiethios c'est vrai, je me suis toujours demandé pourquoi ils n'ont pas mis en œuvre quelque chose comme ça.

0 votes

Et c'est la même chose pour les énumérations : stackoverflow.com/questions/18867180/…

8voto

Utilisez la propriété StringBuilder.Length, voici la documentation

if (mySB.Length > 0)
{
     Console.WriteLine("Bang! n'est pas vide!"); 
}

-1voto

Il suffit d'utiliser Length. Voici comment l'utiliser:

      // créer un objet StringBuilder
    // avec une chaîne en paramètre
    StringBuilder
        str
        = new StringBuilder("Bonjour le monde");

    // afficher la chaîne
    System.out.println("Chaîne = "
                       + str.toString());

    // obtenir la longueur de l'objet StringBuilder et l'initialiser si vous l'utilisez plus d'une fois
    int length = str.length();

   // vous pouvez vérifier comme ceci
   if(len != 0)
    // afficher la longueur
    System.out.println("longueur de la chaîne = "
                       + length);

-3voto

Ajith Kumar Points 6

Utilisez ceci, cela fonctionnera :

StringBuilder stringbuilder = new StringBuilder();
if(string.isnullorempty(Convert.toString(stringbuilder)))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X