ConcurrentDictionary<TKey, TValue>.Keys Property
Gets a collection containing the keys in the Dictionary<TKey, TValue>.
Assembly: mscorlib (in mscorlib.dll)
Property Value
Type: System.Collections.Generic.ICollection<TKey>An ICollection<TKey> containing the keys in the Dictionary<TKey, TValue>.
Implements
IDictionary<TKey, TValue>.KeysWindows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Returns a snapshot/copy of the key collection
What will happen if you iterate on the collection, can it change in mid-iteration? The semantics are poorly document!
Reflector tells me that what actually happens is when you call .Keys, the dictionary is locked, all the keys are copied into a new list, and the result you get is that new list, a snapshot of the keys at the time you called .Keys.
Luckily that is just what I wanted.
- 12/2/2011
- Tim Lovell-Smith