Tip: how to simplify value access from a dictionary ? With an extension method !

I was getting really bored with testing .ContainsKey() at each time I wanted to read a value from a dictionary.

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

A incredibly simple extension method solves this so easily:

 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;
    }
}

The call from any dictionary now becomes:

 value = dico.GetValue("key", "default");

...sometimes I just wonder how I did not think about such solutions earlier ! :-)