Comment éviter d'erreur si la clé est null? Dictionary.Add("Key1", "Text1");
Dictionary["Key2"] <-error! so what can I write in the GET to avoid error?
5 Réponses :
Une clé ne peut jamais être nulle dans un dictionnaire. Un dictionnaire est une hache où vous avez besoin d'une clé non vide ou de la fonction de hachage ne peut pas mapper sur l'élément correspondant. P>
Comment vérifier s'il est nul et retourne une chaîne vide?
Je pense que c'était sa question, comment éviter qu'un null code> est défini comme clé ... cependant, son code ne convient pas à cette hypothèse.
Dans votre code, vous n'avez jamais accès au dictionnaire par clé. Vous retournez simplement un dictionnaire statique. Je ne comprends pas ce que tu veux dire.
@Bobby, cela ne peut jamais arriver. Si vous essayez d'utiliser NULL comme clé dans un dictionnaire, vous obtiendrez l'argumentnulxception afin que vous ne puissiez jamais avoir de dictionnaire avec NULL KEY.
Oui, je pense que c'était sa question, comment éviter cette exception.
Vous pouvez utiliser le Donc, vous écririez: p> Les autres alternatives sont pour envelopper l'accès dans un Dictionary.Containskey code> une méthode>
essayer ... Catch Code > bloquer ou utiliser
trygetvalue code>
(voir le Exemples sur la page MSDN liée à). P> string result = null;
if (dict.TryGetValue("Key2", out result))
{
// Do something with result
}
Je ne veux pas dire dans une méthode mais dans la déclaration!
@Man - Je ne comprends pas votre question alors. Pouvez-vous mettre à jour le code pour montrer exactement ce que vous essayez d'atteindre?
Utiliser trygetvalue code>:
+ 1Utilisez la méthode try, n'utilisez pas la méthode Contient si vous souhaitez extraire la valeur, ce sera inefficace car vous ferez efficacement la recherche deux fois.
Cette réponse est incorrecte: trygetvalue code> jette une exception si la clé est null.
@Jasonbaley Pas sûr que cela a quelque chose à voir avec la réponse, Dictionnaire code> ne prend pas en charge les clés nulles. Une discussion supplémentaire peut être trouvée dans ce fil: Stackoverflow.com/Questtions/4632945 / dictionnaire-with-null-clé
@Grozz La question était de savoir comment éviter d'obtenir une erreur lorsqu'une touche NULL est fournie pour la recherche dans un dictionnaire. Passer une clé nulle sur trygetvalue code> lancera toujours une erreur, de sorte qu'il ne répond pas à la question. Dans votre réponse, si
clé code> est NULL, une exception est lancée, alors comment cela adresse-t-il la question initiale? Il essaie d'éviter l'exception.
@Jasonbaley Veuillez relire attentivement toute la question, pas seulement la légende
Vous retournez la mauvaise chose. Ne retournez pas le dictionnaire, passez une clé et renvoyez la valeur.
public static string GetValue(string key) { if(Global.dictionary.ContainsKey(key)) { return Global.dictionary[key]; } return ""; // or some other value }
Méthode d'extension:
var dic = new Dictionary<string, string> { { "key", "value" } }; string r1 = dic.GetValue("key"); // "value" string r2 = dic.GetValue("false"); // null
Le code ne correspond pas à la question ... Où est votre clé?