Disposer d'un dictionnaire en C# les meilleures pratiques

J'ai un ConcurrentDictionary dans ma classe session.

La clé est une interface représentant un gérant de classe.

La valeur est une Liste de DataContracts classes qui sont utilisées pour que le gestionnaire au cours de cette session.

Quand j'ai jeter la classe session, je souhaite claire de ce dictionnaire. J'ai besoin d'effacer toutes les valeurs et les clés, mais je ne peux pas jeter les clés - depuis qu'ils existent toujours après la classe jeter..

Est-ce suffisant ? - sera-ce la cause de la GC pour faire le travail ?

_myDictionary = null;

Ou j'ai besoin à la parcourir avec un foreach sur toutes les touches et l'utilisation de la Supprimer pour effacer les valeurs.

Cela suffira. Toutefois, si rien d'autre que le dictionnaire conserve les références aux valeurs, alors bien sûr, les valeurs ne sera pas libéré jusqu'à ce que ceux d'autres références en aller.

OriginalL'auteur ilansch | 2013-06-24