Hashtable Constructor (IDictionary, Single, IHashCodeProvider, IComparer)

Hashtable Constructor (IDictionary, Single, IHashCodeProvider, IComparer)

Note: This API is now obsolete.

Initializes a new instance of the Hashtable class by copying the elements from the specified dictionary to the new Hashtable object. The new Hashtable object has an initial capacity equal to the number of elements copied, and uses the specified load factor, hash code provider, and comparer.

Namespace:   System.Collections
Assembly:  mscorlib (in mscorlib.dll)

[<ObsoleteAttribute("Please use Hashtable(IDictionary, float, IEqualityComparer) instead.")>]
new : 
        d:IDictionary *
        loadFactor:float32 *
        hcp:IHashCodeProvider *
        comparer:IComparer -> Hashtable


Type: System.Collections.IDictionary

The IDictionary object to copy to a new Hashtable object.

Type: System.Single

A number in the range from 0.1 through 1.0 that is multiplied by the default value which provides the best performance. The result is the maximum ratio of elements to buckets.

Type: System.Collections.IHashCodeProvider

The IHashCodeProvider object that supplies the hash codes for all keys in the Hashtable.


null to use the default hash code provider, which is each key's implementation of Object.GetHashCode.

Type: System.Collections.IComparer

The IComparer object to use to determine whether two keys are equal.


null to use the default comparer, which is each key's implementation of Object.Equals.

Exception Condition

d is null.


loadFactor is less than 0.1.


loadFactor is greater than 1.0.

The initial capacity is set to the number of elements in the source dictionary. Capacity is automatically increased as required based on the load factor.

The load factor is the maximum ratio of elements to buckets. A smaller load factor means faster lookup at the cost of increased memory consumption. A load factor of 1.0 is the best balance between speed and size.

When the actual load factor reaches the specified load factor, the number of buckets is automatically increased to the smallest prime number that is larger than twice the current number of buckets.

The hash code provider dispenses hash codes for keys in the Hashtable object. The default hash code provider is the key's implementation of Object.GetHashCode.

The comparer determines whether two keys are equal. Every key in a Hashtable must be unique. The default comparer is the key's implementation of Object.Equals.

The custom hash code provider and the custom comparer enable scenarios such as doing lookups with case-insensitive strings.

The elements of the new Hashtable are sorted in the same order in which the enumerator iterates through the IDictionary object.

This constructor is an O(n) operation, where n is the number of elements in the d parameter.

The following code example creates hash tables using different Hashtable constructors and demonstrates the differences in the behavior of the hash tables, even if each one contains the same elements.

No code example is currently available or this language may not be supported.

.NET Framework
Available since 1.1
Return to top
© 2015 Microsoft