Dans certains codes hérités, la méthode d'extension suivante permet de faciliter l'ajout d'un nouvel élément de valeur-clé ou la mise à jour de la valeur si la clé existe déjà.Méthode d'ajout ou de modification d'un élément existant dans le dictionnaire
Méthode 1 (ancien code).
public static void CreateNewOrUpdateExisting<TKey, TValue>(
this IDictionary<TKey, TValue> map, TKey key, TValue value)
{
if (map.ContainsKey(key))
{
map[key] = value;
}
else
{
map.Add(key, value);
}
}
Bien que, je l'ai vérifié que map[key]=value
fait exactement le même travail. Autrement dit, cette méthode pourrait être remplacée par la méthode 2 ci-dessous.
Méthode-2. Maintenant, ma question est .. Pourrait-il y avoir un problème si je remplace la méthode 1 par la méthode 2? Cela va-t-il éclater dans un scénario possible?
Aussi, je pense que c'était la différence entre HashTable et Dictionary. HashTable permet de mettre à jour un élément, ou d'ajouter un nouvel élément en utilisant l'indexeur alors que le dictionnaire ne le fait pas !! Cette différence a-t-elle été éliminée dans les versions C#> 3.0?
L'objectif de cette méthode n'est pas trop d'exception si l'utilisateur envoie à nouveau la même valeur-clé, la méthode doit simplement mettre à jour l'entrée avec la nouvelle valeur et créer une nouvelle entrée si une nouvelle paire valeur-clé a été envoyer à la méthode.