Search code examples
.netperformancedictionaryhashset

HashSet<T> versus Dictionary<K, V> w.r.t searching time to find if an item exists


HashSet<T> t = new HashSet<T>();
// add 10 million items


Dictionary<K, V> t = new Dictionary<K, V>();
// add 10 million items.

Whose .Contains method will return quicker?

Just to clarify, my requirement is I have 10 million objects (well, strings really) that I need to check if they exist in the data structure. I will NEVER iterate.


Solution

  • HashSet vs List vs Dictionary performance test, taken from here.

    Add 1000000 objects (without checking duplicates)

    Contains check for half the objects of a collection of 10000

    Remove half the objects of a collection of 10000