Suite au post que j'ai vu hier (Utiliser string.ToLower() c'est mal !), je me suis amusé a compararer quelques méthode du framework afin de sélectionner les plus rapide et les mettre dans mon code.

Voici mes premiers résultats :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
if (val.ToUpper().Contains("une".ToUpper()) == false)
VS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if (val.IndexOf("une",0,StringComparison.InvariantCultureIgnoreCase) == -1)


VS (csb étant un StringBuilder et cs une simple string. La boucle est exécuter 3000 fois)


VS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if (string.IsNullOrEmpty(val))


Code : Sélectionner tout - Visualiser dans une fenêtre à part
string a = "toto " + val + " toto";
VS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
string a = string.Format("toto {0} toto", val);

Pour le coup la contaténation est plus rapide que le string.Format, pas très logique je trouve. A creuser...

Pour Neptune et Nip
Code : Sélectionner tout - Visualiser dans une fenêtre à part
  if ((val == null) || (val == ""))
VS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if (string.IsNullOrEmpty(val))


Code : Sélectionner tout - Visualiser dans une fenêtre à part
  if ((val == null) || (val.Length == 0))
VS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if (string.IsNullOrEmpty(val))

testé 1 000 fois et 3 000 000 de fois à chaque fois sinon le vainqueur était toujours différent

Plus de détail ici http://dotnetperls.com/Content/IsNul...y-Samples.aspx

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
DateTime dtDateTime;
try
{
dtDateTime = DateTime.Parse(val); //val étant une string contenant "01/01/2008"
}
catch
{
dtDateTime = DateTime.MinValue;
}
VS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
DateTime dtDateTime;
DateTime.TryParse(val, out dtDateTime);


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
  DateTime dtDateTime;
try
{
dtDateTime = DateTime.Parse(val); //val étant une string contenant "01/01/a008"
}
catch
{
dtDateTime = DateTime.MinValue;
}
VS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
DateTime dtDateTime;
DateTime.TryParse(val, out dtDateTime);


Et vous, vous avez aussi des méthode à préconiser par rapport à d'autres ?