Utiliser string.ToLower() c'est mal !

Par Sébastien Carriere 5. février 2008 21:43

J'avoue que le titre de mon message est un peu racoleur :)

Nous allons cependant étudier le bout de code suivant :

if (val.ToLower() == "unevaleur")
{
   
// faire qqch
}

 

Ce type de test est présent dans de nombreux projets...

Rappelons juste que le Framework .Net fournit une méthode spécifique pour effectuer des comparaisons de "string".

On préférera donc écrire :

if (val.Equals("UneValeur", StringComparison.InvariantCultureIgnoreCase))
{
   
// faire qqch
}

 

Pourquoi ? L'une des raisons est les performances !

Voici le résultat d'une application testant les performances de chaque méthode :

image

La méthode "string.Equals()" est juste 40 fois plus rapide que la méthode "==" !

L'utilisation de l'objet "StringBuilder" pour la concaténation de chaînes de caractères est entrée dans les mœurs, il faut faire pareil pour la comparaison des chaînes de caractères !

Edit :
Pour plus d'information sur l'application console que j'ai utilisé pour tester les perfs, je vous invite a regarde le blog d'Antoine.

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Commentaires

Powered by BlogEngine.NET 1.4.5.0
Theme by Mads Kristensen