Quelle est la différence entre la méthode Dictionary.Add
et l'indexeur Dictionary[key] = value
?
Et quand la clé n'existe pas dans dictionar[key]=value
?
Quelle est la différence entre la méthode Dictionary.Add
et l'indexeur Dictionary[key] = value
?
Ajouter -> Ajoute un élément au dictionnaire, si l'élément existe déjà dans le dictionnaire une exception sera déclenchée.
Indexeur ou Dictionnaire[Clé]
=> Ajouter ou Mettre à Jour. Si la clé n'existe pas dans le dictionnaire, un nouvel élément sera ajouté. Si la clé existe, alors la valeur sera mise à jour avec la nouvelle valeur.
dictionnaire.ajouter
ajoutera un nouvel élément au dictionnaire, dictionnaire[clé]=valeur
définira une valeur pour une entrée existante dans le dictionnaire en fonction d'une clé. Si la clé n'est pas présente, alors (indexeur) ajoutera l'élément dans le dictionnaire.
Dictionnaire dict = new Dictionnaire();
dict.Ajouter("Test", "Valeur1");
dict["AutreClé"] = "Valeur2"; // Ajoute un nouvel élément dans le dictionnaire
Console.Write(dict["AutreClé"]);
dict["AutreClé"] = "Nouvelle Valeur"; // Modifie la valeur de l'élément existant en une nouvelle valeur
Console.Write(dict["AutreClé"]);
Dans l'exemple ci-dessus, en premier lieu dict["AutreClé"] = "Valeur2";
ajoutera une nouvelle valeur dans le dictionnaire car elle n'existe pas, et en deuxième lieu, elle modifiera la valeur en Nouvelle Valeur.
Merci Habib. mais nous pouvons ajouter une nouvelle clé avec dictionnaire[nouvelleclé]=valeur. Quelle est la meilleure façon?
Dictionary.Add
lance une exception si la clé est déjà présente. []
lorsqu'il est utilisé pour définir un élément ne lance pas d'exception (mais le fera si vous essayez de l'accéder en lecture).
x.Add(key, value); // lancera une exception si la clé existe déjà ou si la clé est nulle
x[key] = value; // lancera une exception seulement si la clé est nulle
var y = x[key]; // lancera une exception si la clé n'existe pas ou si la clé est nulle
La documentation de Add
rend cela très clair, je trouve :
Vous pouvez également utiliser la propriété
Item
pour ajouter de nouveaux éléments en définissant la valeur d'une clé qui n'existe pas dans leDictionnaire(Of TKey, TValue)
; par exemple,maCollection[maCle] = maValeur
(en Visual Basic,maCollection(maCle) = maValeur
). Cependant, si la clé spécifiée existe déjà dans leDictionnaire(Of TKey, TValue)
, définir la propriété Item écrase l'ancienne valeur. En revanche, la méthodeAdd
génère une exception si une valeur avec la clé spécifiée existe déjà.
(Notez que la propriété Item
correspond à l'indexeur.)
Le comportement est identique lorsque la clé n'existe pas dans le dictionnaire : l'élément sera ajouté dans les deux cas.
Le comportement diffère lorsque la clé existe déjà. dictionnaire[clé] = valeur
mettra à jour la valeur associée à la clé, tandis que dictionnaire.Add(clé, valeur)
lancera une ArgumentException.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Je suis venu chercher car je m'inquiétais que les anciennes versions de C# pourraient nécessiter l'utilisation de .Add() pour ajouter des éléments, mais apparemment non.