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?
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?
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);
}
Il aurait été facile de mettre public bool Empty { get; } = this.Length == 0;
. Étrange qu'ils n'aient pas eu cette idée.
@Boiethios c'est vrai, je me suis toujours demandé pourquoi ils n'ont pas mis en œuvre quelque chose comme ça.
Utilisez la propriété StringBuilder.Length
, voici la documentation
if (mySB.Length > 0)
{
Console.WriteLine("Bang! n'est pas vide!");
}
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);
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.
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.