Share via


Astuce: faciliter la lecture des données d'un dictionnaire grâce à une méthode d'extension

Une petite pour la route: j'en avais vraiment marre de tester à chaque fois .ContainsKey() depuis un dictionnaire avant de lire une valeur.

 Dictionary<string, string> dico;
if (dico.ContainsKey("key"))
    value = dico["key"];
else
    value = "default";

Une petite méthode d'extension de C# 3.0 d'une simplicité incroyable permet de régler ça facilement:

 public static class MyExtensions
{
    public static TValue GetValue<TKey, TValue>(
        this IDictionary<TKey, TValue> source,
        TKey key, TValue defaultValue)
    {
        if (source.ContainsKey(key))
            return source[key];
        else
            return defaultValue;
    }
}

L'appel depuis n'importe quel dictionnaire devient évidemment très simple !!!

 value = dico.GetValue("key", "default"); Parfois, on se demande juste comment on y avait pas pensé avant...