

A Dictionary of a specific type (other than Object) provides better performance than a Hashtable for value types. The Dictionary and ConcurrentDictionary classes have the same functionality as the Hashtable class. In contrast, "stressed" and "desserts" would have the same hash code and would be in the same bucket. The string "picnic" would have a hash code that is different from the hash code for the string "basket" therefore, the strings "picnic" and "basket" would be in different buckets. When a value is being searched for in the Hashtable, the hash code is generated for that value, and the bucket associated with that hash code is searched.įor example, a hash function for a string might take the ASCII codes of each character in the string and add them together to generate a hash code.

When an object is added to a Hashtable, it is stored in the bucket that is associated with the hash code that matches the object's hash code.

However, you can also specify a hash function for all elements in a Hashtable by using a Hashtable constructor that accepts an IHashCodeProvider implementation as one of its parameters. It is possible for a hash function to generate the same hash code for two different keys, but a hash function that generates a unique hash code for each unique key results in better performance when retrieving elements from the hash table.Įach object that is used as an element in a Hashtable must be able to generate a hash code for itself by using an implementation of the GetHashCode method. A hash function must always return the same hash code for the same key. The key is the value of some property of the object being stored.

The generic HashSet class is an unordered collection for containing unique elements.Ī hash function is an algorithm that returns a numeric hash code based on a key. Each bucket is associated with a hash code, which is generated using a hash function and is based on the key of the element. A bucket is a virtual subgroup of elements within the Hashtable, which makes searching and retrieving easier and faster than in most collections. Therefore, each element in these collections is a key-and-value pair.Ī Hashtable object consists of buckets that contain the elements of the collection. The Dictionary generic class also implements the IDictionary generic interface. The class, and the and generic classes, implement the interface.
