À partir de MSDN son entrée sur le Dictionnaire.TryGetValue Méthode:
Cette méthode combine les fonctionnalités de la ContainsKey méthode et les propriétés de l'Élément.
Si la clé n'est pas trouvée, alors la valeur du paramètre devient approprié la valeur par défaut pour le type de valeur TValue; par exemple, le 0 (zéro) pour les types integer, false pour les types Boolean, et null pour les types référence.
Utiliser le TryGetValue méthode si votre code fréquemment des tentatives d'accès les touches qui ne sont pas dans le dictionnaire. L'utilisation de cette méthode est de plus efficace que de rattraper le KeyNotFoundException jeté par l'Élément de la propriété.
Cette méthode s'approche d'un O(1).
À partir de la description, il n'est pas clair s'il est plus efficace ou plus pratique que d'appeler ContainsKey et ensuite de faire de la recherche. La mise en œuvre de l' TryGetValue
appelez simplement ContainsKey et le Point ou est en fait plus efficace qu'en faisant une simple recherche?
En d'autres termes, ce qui est le plus efficace (c'est à dire que l'on effectue moins de recherches):
Dictionary<int,int> dict;
//...//
int ival;
if(dict.ContainsKey(ikey))
{
ival = dict[ikey];
}
else
{
ival = default(int);
}
ou
Dictionary<int,int> dict;
//...//
int ival;
dict.TryGetValue(ikey, out ival);
[Modifier] Je ne suis pas à la recherche pour une référence!!!