J'ai essayé de vérifier pour NULL, mais le compilateur avertit que cette condition ne se produira jamais. Qu'est-ce que je cherche ?
Réponses
Trop de publicités?Le dictionnaire lance une exception de KeyNotFound
dans le cas où le dictionnaire ne contient pas votre clé.
Comme suggéré, ContainsKey
est la précaution appropriée. TryGetValue
est également efficace.
Cela permet au dictionnaire de stocker une valeur de NULL plus efficacement. Sans ce comportement, la vérification d'un résultat nul de l'opérateur [] indiquerait soit une valeur nulle soit la non-existence de la touche d'entrée qui n'est pas bonne.
Si vous vérifiez juste avant d'essayer d'ajouter une nouvelle valeur, utilisez la méthode ContainsKey
:
if (!openWith.ContainsKey("ht"))
{
openWith.Add("ht", "hypertrm.exe");
}
Si vous vérifiez que la valeur existe, utilisez la méthode TryGetValue
comme décrit dans la réponse de Jon Skeet.
Vous devriez vérifier pour Dictionary.ContainsKey(clé int) avant d'essayer de sortir la valeur.
Dictionary<int, int> myDictionary = new Dictionary<int, int>();
myDictionary.Add(2,4);
myDictionary.Add(3,5);
int keyToFind = 7;
if(myDictionary.ContainsKey(keyToFind))
{
myValueLookup = myDictionay[keyToFind];
// do work...
}
else
{
// the key doesn't exist.
}