avril
2011
Présentation du StringBuilder :
La classe StringBuilder est hérité de System.Text, elle permet de manipuler des chaines de caractères. Contrairement à un objet String, l’objet StringBuilder gère une mémoire tampon, ce qui lui confère de meilleures performances que l’objet String qui lui crée un nouvel objet à chaque traitement.
Le StringBuilder peut notamment être utile lors de construction de requêtes SQL dépendant de certains paramètres.
Utilisation du StringBuilder :
Cet objet est utilisé lors de concaténation de chaînes, il possède une partie des méthodes de la classe String, dont notamment :
Append(): Permet de rajouter à la suite de la chaîne du StringBuilder ce qui est en paramètre. Cette méthode est composé de 19 surcharges possibles contenant différents types de paramètres.
AppendFormat() : Permet de rajouter à la suite de la chaîne du StringBuilder un ou plusieurs des paramètres.
Clear() : Permet de supprimer le contenu du StringBuilder
Insert() : Permet d’insérer à la position désirée dans le StringBuilder ce qui est en paramètre. Pour ajouter au tout début du StringBuilder, il faut insérer à la position 0, car les positions d’index commencent à 0.
Remove(): Permet de supprimer un caractère ou une chaîne de caractères présentes dans le StringBuilder
Replace(): Permet de remplacer un caractère ou une chaîne de caractères spécifiés dans les paramètres par une autre valeur.
ToString(): Permet de convertir le StringBuilder en String, utile pour un affichage.
Exemple d’utilisation du StringBuilder :
public static StringBuilder RecupereListeClient(String nom, String prenom, String telephone)
{
StringBuilder sb = new StringBuilder();
sb.Append("SELECT * FROM CLIENTS ");
if (!String.IsNullOrEmpty(nom) || !String.IsNullOrEmpty(prenom) || !String.IsNullOrEmpty(telephone))
{
sb.Append("WHERE ");
if (!String.IsNullOrEmpty(nom))
sb.AppendFormat("nomClient={0} ", nom);
if (!String.IsNullOrEmpty(prenom))
{
if (!String.IsNullOrEmpty(nom))
sb.Append("AND ");
sb.AppendFormat("prenomClient={0} ", prenom);
}
if (!String.IsNullOrEmpty(telephone))
{
if (!String.IsNullOrEmpty(nom) || !String.IsNullOrEmpty(prenom))
sb.Append("AND ");
sb.AppendFormat("telephoneClient={0}", telephone);
}
}
return sb;
}
Ici, on a utilisé le StringBuilder afin de construire une requête SQL de sélection d’un client en fonction de son nom et/ou prénom et/ou téléphone. Ainsi on vérifie si chacun de ses paramètres n’est pas null ou vide et en fonction de ceci, le StringBuilder est completé dans la clause Where.
On voit donc bien l’intérêt d’un StringBuilder, construction dynamique de requêtes SQL, meilleures performances que l’objet String.