Search code examples
c#collections

Difference between Dictionary and Hashtable


Possible Duplicate:
Why is Dictionary preferred over Hashtable in C#?

What is the difference between Dictionary and Hashtable. How to decide which one to use?


Solution

  • Simply, Dictionary<TKey,TValue> is a generic type, allowing:

    • static typing (and compile-time verification)
    • use without boxing

    If you are .NET 2.0 or above, you should prefer Dictionary<TKey,TValue> (and the other generic collections)

    A subtle but important difference is that Hashtable supports multiple reader threads with a single writer thread, while Dictionary offers no thread safety. If you need thread safety with a generic dictionary, you must implement your own synchronization or (in .NET 4.0) use ConcurrentDictionary<TKey, TValue>.