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...