Creates a new Hashtable with the specified initial capacity and load factor, using the specified hash code provider and the specified comparer.
[Visual Basic] Overloads Public Sub New( _ ByVal capacity As Integer, _ ByVal loadFactor As Single, _ ByVal hcp As IHashCodeProvider, _ ByVal comparer As IComparer _ ) [C#] public Hashtable( int capacity, float loadFactor, IHashCodeProvider hcp, IComparer comparer ); [C++] public: Hashtable( int capacity, float loadFactor, IHashCodeProvider* hcp, IComparer* comparer ); [JScript] public function Hashtable( capacity : int, loadFactor : float, hcp : IHashCodeProvider, comparer : IComparer );
-or-
a null reference (in Visual Basic Nothing) to use the default hash code provider, which is each key's implementation of GetHashCode.
-or-
a null reference (Nothing) to use the default comparer, which is each key's implementation of Equals.
Exception Type | Condition |
---|---|
ArgumentOutOfRangeException | capacity is less than zero.
-or- loadfactor is less than 0.1. -or- loadfactor is greater than 1.0. |
Specifying the initial capacity eliminates a number of resizing operations that would otherwise be performed while adding entries to the Hashtable. Capacity is increased as the number of buckets is increased based on the load factor.
The maximum load factor is the maximum ratio of entries to buckets. A smaller load factor means faster lookup at the cost of increased memory consumption. A maximum load factor of 1.0 is the best balance between speed and size.
When the actual load factor reaches the maximum 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. The default hash code provider is the key's implementation of GetHashCode.
The comparer is used to determine if two keys are equal. Every key in a Hashtable must be unique. The default comparer is the key's implementation of Equals.
The custom hash code provider and the custom comparer enables scenarios such as doing lookups with case-insensitive strings.
Hashtable Class | Hashtable Members | System.Collections Namespace | Hashtable Constructor Overload List | IHashCodeProvider | IComparer | GetHashCode | Equals