Hashtable Constructors

Definitie

Initialiseert een nieuw exemplaar van de Hashtable klasse.

Overloads

Name Description
Hashtable()

Initialiseert een nieuwe, lege instantie van de Hashtable klasse met behulp van de standaardinitiële capaciteit, belastingfactor, hashcodeprovider en vergelijkingsfunctie.

Hashtable(Int32, Single, IHashCodeProvider, IComparer)
Verouderd.

Initialiseert een nieuwe, lege instantie van de Hashtable klasse met behulp van de opgegeven initiële capaciteit, belastingfactor, hashcodeprovider en vergelijkingsfunctie.

Hashtable(IDictionary, Single, IHashCodeProvider, IComparer)
Verouderd.

Initialiseert een nieuw exemplaar van de Hashtable klasse door de elementen uit de opgegeven woordenlijst naar het nieuwe Hashtable object te kopiëren. Het nieuwe Hashtable object heeft een initiële capaciteit die gelijk is aan het aantal gekopieerde elementen en maakt gebruik van de opgegeven belastingfactor, hashcodeprovider en vergelijkingsfunctie.

Hashtable(Int32, Single, IEqualityComparer)

Initialiseert een nieuwe, lege instantie van de klasse met behulp van de opgegeven initiële capaciteit, de laadfactor en het HashtableIEqualityComparer object.

Hashtable(Int32, IHashCodeProvider, IComparer)
Verouderd.

Initialiseert een nieuwe, lege instantie van de Hashtable klasse met behulp van de opgegeven initiële capaciteit, hashcodeprovider, vergelijking en de standaardbelastingsfactor.

Hashtable(IDictionary, Single, IEqualityComparer)

Initialiseert een nieuw exemplaar van de Hashtable klasse door de elementen uit de opgegeven woordenlijst naar het nieuwe Hashtable object te kopiëren. Het nieuwe Hashtable object heeft een initiële capaciteit die gelijk is aan het aantal gekopieerde elementen en gebruikt de opgegeven belastingsfactor en IEqualityComparer het opgegeven object.

Hashtable(IDictionary, IHashCodeProvider, IComparer)
Verouderd.

Initialiseert een nieuw exemplaar van de Hashtable klasse door de elementen uit de opgegeven woordenlijst naar het nieuwe Hashtable object te kopiëren. Het nieuwe Hashtable object heeft een initiële capaciteit die gelijk is aan het aantal gekopieerde elementen en maakt gebruik van de standaardbelastingsfactor en de opgegeven hashcodeprovider en vergelijkingsfunctie. Deze API is verouderd. Zie voor een alternatief Hashtable(IDictionary, IEqualityComparer).

Hashtable(Int32, Single)

Initialiseert een nieuwe, lege instantie van de Hashtable klasse met behulp van de opgegeven initiële capaciteit en belastingfactor, en de standaard-hashcodeprovider en vergelijkingsfunctie.

Hashtable(SerializationInfo, StreamingContext)

Initialiseert een nieuwe, lege instantie van de Hashtable klasse die kan worden geserialiseerd met behulp van de opgegeven SerializationInfo objecten.StreamingContext

Hashtable(IHashCodeProvider, IComparer)
Verouderd.

Initialiseert een nieuwe, lege instantie van de Hashtable klasse met behulp van de standaardinitiële capaciteit en belastingfactor, en de opgegeven hashcodeprovider en vergelijkingsfunctie.

Hashtable(IDictionary, Single)

Initialiseert een nieuw exemplaar van de Hashtable klasse door de elementen uit de opgegeven woordenlijst naar het nieuwe Hashtable object te kopiëren. Het nieuwe Hashtable object heeft een initiële capaciteit die gelijk is aan het aantal gekopieerde elementen en maakt gebruik van de opgegeven belastingfactor en de standaard-hashcodeprovider en vergelijkingsfunctie.

Hashtable(IDictionary, IEqualityComparer)

Initialiseert een nieuw exemplaar van de Hashtable klasse door de elementen uit de opgegeven woordenlijst te kopiëren naar een nieuw Hashtable object. Het nieuwe Hashtable object heeft een initiële capaciteit die gelijk is aan het aantal gekopieerde elementen en gebruikt de standaardbelastingsfactor en het opgegeven IEqualityComparer object.

Hashtable(Int32)

Initialiseert een nieuwe, lege instantie van de Hashtable klasse met behulp van de opgegeven initiële capaciteit en de standaardbelastingsfactor, hashcodeprovider en vergelijkingsfunctie.

Hashtable(IEqualityComparer)

Initialiseert een nieuwe, lege instantie van de Hashtable klasse met behulp van de standaardinitiële capaciteit en belastingsfactor en het opgegeven IEqualityComparer object.

Hashtable(IDictionary)

Initialiseert een nieuw exemplaar van de Hashtable klasse door de elementen uit de opgegeven woordenlijst naar het nieuwe Hashtable object te kopiëren. Het nieuwe Hashtable object heeft een initiële capaciteit die gelijk is aan het aantal gekopieerde elementen en maakt gebruik van de standaardbelastingsfactor, hashcodeprovider en vergelijkingsfunctie.

Hashtable(Int32, IEqualityComparer)

Initialiseert een nieuwe, lege instantie van de Hashtable klasse met behulp van de opgegeven initiële capaciteit en IEqualityCompareren de standaardbelastingsfactor.

Hashtable()

Initialiseert een nieuwe, lege instantie van de Hashtable klasse met behulp van de standaardinitiële capaciteit, belastingfactor, hashcodeprovider en vergelijkingsfunctie.

public:
 Hashtable();
public Hashtable();
Public Sub New ()

Voorbeelden

In het volgende codevoorbeeld worden hashtabellen gemaakt met behulp van verschillende Hashtable constructors en worden de verschillen in het gedrag van de hash-tabellen gedemonstreerd, zelfs als elke tabel dezelfde elementen bevat.

using System;
using System.Collections;
using System.Globalization;

class myComparer : IEqualityComparer
{
    public new bool Equals(object x, object y)
    {
        return x.Equals(y);
    }

    public int GetHashCode(object obj)
    {
        return obj.ToString().ToLower().GetHashCode();
    }
}

class myCultureComparer : IEqualityComparer
{
    public CaseInsensitiveComparer myComparer;

    public myCultureComparer()
    {
        myComparer = CaseInsensitiveComparer.DefaultInvariant;
    }

    public myCultureComparer(CultureInfo myCulture)
    {
        myComparer = new CaseInsensitiveComparer(myCulture);
    }

    public new bool Equals(object x, object y)
    {
        return myComparer.Compare(x, y) == 0;
    }

    public int GetHashCode(object obj)
    {
        return obj.ToString().ToLower().GetHashCode();
    }
}

public class SamplesHashtable
{

    public static void Main()
    {

        // Create a hash table using the default comparer.
        var myHT1 = new Hashtable();
        myHT1.Add("FIRST", "Hello");
        myHT1.Add("SECOND", "World");
        myHT1.Add("THIRD", "!");

        // Create a hash table using the specified IEqualityComparer that uses
        // the default Object.Equals to determine equality.
        var myHT2 = new Hashtable(new myComparer());
        myHT2.Add("FIRST", "Hello");
        myHT2.Add("SECOND", "World");
        myHT2.Add("THIRD", "!");

        // Create a hash table using a case-insensitive hash code provider and
        // case-insensitive comparer based on the InvariantCulture.
        Hashtable myHT3 = new Hashtable(
            CaseInsensitiveHashCodeProvider.DefaultInvariant,
            CaseInsensitiveComparer.DefaultInvariant);
        myHT3.Add("FIRST", "Hello");
        myHT3.Add("SECOND", "World");
        myHT3.Add("THIRD", "!");

        // Create a hash table using an IEqualityComparer that is based on
        // the Turkish culture (tr-TR) where "I" is not the uppercase
        // version of "i".
        var myCul = new CultureInfo("tr-TR");
        var myHT4 = new Hashtable(new myCultureComparer(myCul));
        myHT4.Add("FIRST", "Hello");
        myHT4.Add("SECOND", "World");
        myHT4.Add("THIRD", "!");

        // Search for a key in each hash table.
        Console.WriteLine($"first is in myHT1: {myHT1.ContainsKey("first")}");
        Console.WriteLine($"first is in myHT2: {myHT2.ContainsKey("first")}");
        Console.WriteLine($"first is in myHT3: {myHT3.ContainsKey("first")}");
        Console.WriteLine($"first is in myHT4: {myHT4.ContainsKey("first")}");
    }
}


/*
This code produces the following output.
Results vary depending on the system's culture settings.

first is in myHT1: False
first is in myHT2: False
first is in myHT3: True
first is in myHT4: False

*/
Imports System.Collections
Imports System.Globalization

Public Class myComparer
    Implements IEqualityComparer
    Public Function Equals1(ByVal x As Object, ByVal y As Object) _
        As Boolean Implements IEqualityComparer.Equals

        Return x.Equals(y)
    End Function

    Public Function GetHashCode1(ByVal obj As Object) _
        As Integer Implements IEqualityComparer.GetHashCode

        Return obj.ToString().ToLower().GetHashCode()
    End Function

End Class

Public Class myCultureComparer
    Implements IEqualityComparer

    Dim myComparer As CaseInsensitiveComparer

    Public Sub New()
        myComparer = CaseInsensitiveComparer.DefaultInvariant
    End Sub

    Public Sub New(ByVal myCulture As CultureInfo)
        myComparer = New CaseInsensitiveComparer(myCulture)
    End Sub

    Public Function Equals1(ByVal x As Object, ByVal y As Object) _
        As Boolean Implements IEqualityComparer.Equals

        Return myComparer.Compare(x, y) = 0
    End Function

    Public Function GetHashCode1(ByVal obj As Object) _
        As Integer Implements IEqualityComparer.GetHashCode
        Return obj.ToString().ToLower().GetHashCode()
    End Function
End Class

Public Class SamplesHashtable

    Public Shared Sub Main()

        ' Create a hash table using the default comparer.
        Dim myHT1 As New Hashtable()
        myHT1.Add("FIRST", "Hello")
        myHT1.Add("SECOND", "World")
        myHT1.Add("THIRD", "!")

        ' Create a hash table using the specified IEqualityComparer that uses
        ' the default Object.Equals to determine equality.
        Dim myHT2 As New Hashtable(New myComparer())
        myHT2.Add("FIRST", "Hello")
        myHT2.Add("SECOND", "World")
        myHT2.Add("THIRD", "!")

        ' Create a hash table using a case-insensitive hash code provider and
        ' case-insensitive comparer based on the InvariantCulture.
        Dim myHT3 As New Hashtable( _
            CaseInsensitiveHashCodeProvider.DefaultInvariant, _
            CaseInsensitiveComparer.DefaultInvariant)
        myHT3.Add("FIRST", "Hello")
        myHT3.Add("SECOND", "World")
        myHT3.Add("THIRD", "!")

        ' Create a hash table using an IEqualityComparer that is based on
        ' the Turkish culture (tr-TR) where "I" is not the uppercase
        ' version of "i".
        Dim myCul As New CultureInfo("tr-TR")
        Dim myHT4 As New Hashtable(New myCultureComparer(myCul))
        myHT4.Add("FIRST", "Hello")
        myHT4.Add("SECOND", "World")
        myHT4.Add("THIRD", "!")

        ' Search for a key in each hash table.
        Console.WriteLine($"first is in myHT1: {myHT1.ContainsKey("first")}")
        Console.WriteLine($"first is in myHT2: {myHT2.ContainsKey("first")}")
        Console.WriteLine($"first is in myHT3: {myHT3.ContainsKey("first")}")
        Console.WriteLine($"first is in myHT4: {myHT4.ContainsKey("first")}")

    End Sub

End Class

'This code produces the following output.
'Results vary depending on the system's culture settings.

'first is in myHT1: False
'first is in myHT2: False
'first is in myHT3: True
'first is in myHT4: False

Opmerkingen

De capaciteit van een hash-tabel wordt gebruikt om het optimale aantal hash-tabelbuckets te berekenen op basis van de belastingfactor. Capaciteit wordt automatisch verhoogd naar behoefte.

De belastingfactor is de maximale verhouding van elementen tot buckets. Een kleinere belastingfactor betekent sneller zoeken naar de kosten van een verhoogd geheugenverbruik.

Wanneer de werkelijke belastingfactor de opgegeven belastingfactor bereikt, wordt het aantal buckets automatisch verhoogd tot het kleinste priemnummer dat groter is dan twee keer het huidige aantal buckets.

De hashcodeprovider dispenseert hash-codes voor sleutels in het Hashtable object. De standaard-hashcodeprovider is de implementatie van de sleutel.Object.GetHashCode

De vergelijkingsfunctie bepaalt of twee sleutels gelijk zijn. Elke sleutel in een Hashtable moet uniek zijn. De standaard comparer is de implementatie van de sleutel.Object.Equals

Deze constructor is een O(1) bewerking.

Zie ook

Van toepassing op

Hashtable(Int32, Single, IHashCodeProvider, IComparer)

Let op

Please use Hashtable(int, float, IEqualityComparer) instead.

Initialiseert een nieuwe, lege instantie van de Hashtable klasse met behulp van de opgegeven initiële capaciteit, belastingfactor, hashcodeprovider en vergelijkingsfunctie.

public:
 Hashtable(int capacity, float loadFactor, System::Collections::IHashCodeProvider ^ hcp, System::Collections::IComparer ^ comparer);
public Hashtable(int capacity, float loadFactor, System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer);
[System.Obsolete("Please use Hashtable(int, float, IEqualityComparer) instead.")]
public Hashtable(int capacity, float loadFactor, System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer);
new System.Collections.Hashtable : int * single * System.Collections.IHashCodeProvider * System.Collections.IComparer -> System.Collections.Hashtable
[<System.Obsolete("Please use Hashtable(int, float, IEqualityComparer) instead.")>]
new System.Collections.Hashtable : int * single * System.Collections.IHashCodeProvider * System.Collections.IComparer -> System.Collections.Hashtable
Public Sub New (capacity As Integer, loadFactor As Single, hcp As IHashCodeProvider, comparer As IComparer)

Parameters

capacity
Int32

Het geschatte aantal elementen dat het Hashtable object in eerste instantie kan bevatten.

loadFactor
Single

Een getal in het bereik van 0,1 tot en met 1,0 dat wordt vermenigvuldigd met de standaardwaarde die de beste prestaties biedt. Het resultaat is de maximale verhouding tussen elementen en buckets.

hcp
IHashCodeProvider

Het IHashCodeProvider object dat de hashcodes levert voor alle sleutels in de Hashtable.

– of –

null om de standaard-hashcodeprovider te gebruiken. Dit is de implementatie van GetHashCode()elke sleutel.

comparer
IComparer

Het IComparer object dat moet worden gebruikt om te bepalen of twee sleutels gelijk zijn.

– of –

null om de standaard-vergelijkingsfunctie te gebruiken. Dit is de implementatie van Equals(Object)elke sleutel.

Kenmerken

Uitzonderingen

capacity is kleiner dan nul.

– of –

loadFactor is kleiner dan 0,1.

– of –

loadFactor is groter dan 1,0.

Opmerkingen

Als u de initiële capaciteit opgeeft, hoeft u niet meer een aantal formaatbewerkingen uit te voeren terwijl u elementen aan het Hashtable object toevoegt. De capaciteit wordt automatisch verhoogd op basis van de belastingfactor.

De belastingfactor is de maximale verhouding van elementen tot buckets. Een kleinere belastingfactor betekent sneller zoeken naar de kosten van een verhoogd geheugenverbruik. Een belastingfactor van 1,0 is de beste balans tussen snelheid en grootte.

Wanneer de werkelijke belastingfactor de opgegeven belastingfactor bereikt, wordt het aantal buckets automatisch verhoogd tot het kleinste priemnummer dat groter is dan twee keer het huidige aantal buckets.

De hashcodeprovider dispenseert hash-codes voor sleutels in de Hashtable. De standaard-hashcodeprovider is de implementatie van de sleutel.Object.GetHashCode

De vergelijkingsfunctie bepaalt of twee sleutels gelijk zijn. Elke sleutel in een Hashtable moet uniek zijn. De standaard comparer is de implementatie van de sleutel.Object.Equals

De aangepaste hashcodeprovider en de aangepaste vergelijkingsfunctie maken scenario's mogelijk, zoals het uitvoeren van zoekacties met hoofdlettergevoelige tekenreeksen.

Deze constructor is een O(n) bewerking, waarbij n de capacity parameter zich bevindt.

Zie ook

Van toepassing op

Hashtable(IDictionary, Single, IHashCodeProvider, IComparer)

Let op

Please use Hashtable(IDictionary, float, IEqualityComparer) instead.

Initialiseert een nieuw exemplaar van de Hashtable klasse door de elementen uit de opgegeven woordenlijst naar het nieuwe Hashtable object te kopiëren. Het nieuwe Hashtable object heeft een initiële capaciteit die gelijk is aan het aantal gekopieerde elementen en maakt gebruik van de opgegeven belastingfactor, hashcodeprovider en vergelijkingsfunctie.

public:
 Hashtable(System::Collections::IDictionary ^ d, float loadFactor, System::Collections::IHashCodeProvider ^ hcp, System::Collections::IComparer ^ comparer);
public Hashtable(System.Collections.IDictionary d, float loadFactor, System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer);
[System.Obsolete("Please use Hashtable(IDictionary, float, IEqualityComparer) instead.")]
public Hashtable(System.Collections.IDictionary d, float loadFactor, System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer);
new System.Collections.Hashtable : System.Collections.IDictionary * single * System.Collections.IHashCodeProvider * System.Collections.IComparer -> System.Collections.Hashtable
[<System.Obsolete("Please use Hashtable(IDictionary, float, IEqualityComparer) instead.")>]
new System.Collections.Hashtable : System.Collections.IDictionary * single * System.Collections.IHashCodeProvider * System.Collections.IComparer -> System.Collections.Hashtable
Public Sub New (d As IDictionary, loadFactor As Single, hcp As IHashCodeProvider, comparer As IComparer)

Parameters

d
IDictionary

Het IDictionary object dat moet worden gekopieerd naar een nieuw Hashtable object.

loadFactor
Single

Een getal in het bereik van 0,1 tot en met 1,0 dat wordt vermenigvuldigd met de standaardwaarde die de beste prestaties biedt. Het resultaat is de maximale verhouding tussen elementen en buckets.

hcp
IHashCodeProvider

Het IHashCodeProvider object dat de hashcodes levert voor alle sleutels in de Hashtable.

– of –

null om de standaard-hashcodeprovider te gebruiken. Dit is de implementatie van GetHashCode()elke sleutel.

comparer
IComparer

Het IComparer object dat moet worden gebruikt om te bepalen of twee sleutels gelijk zijn.

– of –

null om de standaard-vergelijkingsfunctie te gebruiken. Dit is de implementatie van Equals(Object)elke sleutel.

Kenmerken

Uitzonderingen

loadFactor is kleiner dan 0,1.

– of –

loadFactor is groter dan 1,0.

Opmerkingen

De initiële capaciteit wordt ingesteld op het aantal elementen in de bronwoordenlijst. De capaciteit wordt automatisch verhoogd op basis van de belastingfactor.

De belastingfactor is de maximale verhouding van elementen tot buckets. Een kleinere belastingfactor betekent sneller zoeken naar de kosten van een verhoogd geheugenverbruik. Een belastingfactor van 1,0 is de beste balans tussen snelheid en grootte.

Wanneer de werkelijke belastingfactor de opgegeven belastingfactor bereikt, wordt het aantal buckets automatisch verhoogd tot het kleinste priemnummer dat groter is dan twee keer het huidige aantal buckets.

De hashcodeprovider dispenseert hash-codes voor sleutels in het Hashtable object. De standaard-hashcodeprovider is de implementatie van de sleutel.Object.GetHashCode

De vergelijkingsfunctie bepaalt of twee sleutels gelijk zijn. Elke sleutel in een Hashtable moet uniek zijn. De standaard comparer is de implementatie van de sleutel.Object.Equals

De aangepaste hashcodeprovider en de aangepaste vergelijkingsfunctie maken scenario's mogelijk, zoals het uitvoeren van zoekacties met hoofdlettergevoelige tekenreeksen.

De elementen van het nieuwe Hashtable worden gesorteerd in dezelfde volgorde waarin de enumerator het IDictionary object doorloopt.

Deze constructor is een O(n) bewerking, waarbij n het aantal elementen in de d parameter is.

Van toepassing op

Hashtable(Int32, Single, IEqualityComparer)

Initialiseert een nieuwe, lege instantie van de klasse met behulp van de opgegeven initiële capaciteit, de laadfactor en het HashtableIEqualityComparer object.

public:
 Hashtable(int capacity, float loadFactor, System::Collections::IEqualityComparer ^ equalityComparer);
public Hashtable(int capacity, float loadFactor, System.Collections.IEqualityComparer equalityComparer);
new System.Collections.Hashtable : int * single * System.Collections.IEqualityComparer -> System.Collections.Hashtable
Public Sub New (capacity As Integer, loadFactor As Single, equalityComparer As IEqualityComparer)

Parameters

capacity
Int32

Het geschatte aantal elementen dat het Hashtable object in eerste instantie kan bevatten.

loadFactor
Single

Een getal in het bereik van 0,1 tot en met 1,0 dat wordt vermenigvuldigd met de standaardwaarde die de beste prestaties biedt. Het resultaat is de maximale verhouding tussen elementen en buckets.

equalityComparer
IEqualityComparer

Het IEqualityComparer object dat de hashcodeprovider en de vergelijkingsfunctie definieert die moet worden gebruikt met de Hashtable.

– of –

null om de standaard-hashcodeprovider en de standaardvergelijker te gebruiken. De standaard-hashcodeprovider is de implementatie van GetHashCode() elke sleutel en de standaardvergelijker is de implementatie van Equals(Object)elke sleutel.

Uitzonderingen

capacity is kleiner dan nul.

– of –

loadFactor is kleiner dan 0,1.

– of –

loadFactor is groter dan 1,0.

Voorbeelden

In het volgende codevoorbeeld worden hashtabellen gemaakt met behulp van verschillende Hashtable constructors en worden de verschillen in het gedrag van de hash-tabellen gedemonstreerd, zelfs als elke tabel dezelfde elementen bevat.

using System;
using System.Collections;
using System.Globalization;

class myCultureComparer : IEqualityComparer
{
    public CaseInsensitiveComparer myComparer;

    public myCultureComparer()
    {
        myComparer = CaseInsensitiveComparer.DefaultInvariant;
    }

    public myCultureComparer(CultureInfo myCulture)
    {
        myComparer = new CaseInsensitiveComparer(myCulture);
    }

    public new bool Equals(object x, object y)
    {
        if (myComparer.Compare(x, y) == 0)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    public int GetHashCode(object obj)
    {
        // Compare the hash code for the lowercase versions of the strings.
        return obj.ToString().ToLower().GetHashCode();
    }
}

public class SamplesHashtable
{

    public static void Main()
    {

        // Create a hash table using the default comparer.
        Hashtable myHT1 = new Hashtable(3, .8f);
        myHT1.Add("FIRST", "Hello");
        myHT1.Add("SECOND", "World");
        myHT1.Add("THIRD", "!");

        // Create a hash table using the specified IEqualityComparer that uses
        // the CaseInsensitiveComparer.DefaultInvariant to determine equality.
        Hashtable myHT2 = new Hashtable(3, .8f, new myCultureComparer());
        myHT2.Add("FIRST", "Hello");
        myHT2.Add("SECOND", "World");
        myHT2.Add("THIRD", "!");

        // Create a hash table using an IEqualityComparer that is based on
        // the Turkish culture (tr-TR) where "I" is not the uppercase
        // version of "i".
        CultureInfo myCul = new CultureInfo("tr-TR");
        Hashtable myHT3 = new Hashtable(3, .8f, new myCultureComparer(myCul));

        myHT3.Add("FIRST", "Hello");
        myHT3.Add("SECOND", "World");
        myHT3.Add("THIRD", "!");

        // Search for a key in each hash table.
        Console.WriteLine("first is in myHT1: {0}", myHT1.ContainsKey("first"));
        Console.WriteLine("first is in myHT2: {0}", myHT2.ContainsKey("first"));
        Console.WriteLine("first is in myHT3: {0}", myHT3.ContainsKey("first"));
    }
}


/*
This code produces the following output.
Results vary depending on the system's culture settings.

first is in myHT1: False
first is in myHT2: True
first is in myHT3: False

*/
Imports System.Collections
Imports System.Globalization

Public Class myCultureComparer
    Implements IEqualityComparer

    Dim myComparer As CaseInsensitiveComparer

    Public Sub New()
        myComparer = CaseInsensitiveComparer.DefaultInvariant
    End Sub

    Public Sub New(ByVal myCulture As CultureInfo)
        myComparer = New CaseInsensitiveComparer(myCulture)
    End Sub

    Public Function Equals1(ByVal x As Object, ByVal y As Object) _
        As Boolean Implements IEqualityComparer.Equals

        If (myComparer.Compare(x, y) = 0) Then
            Return True
        Else
            Return False
        End If
    End Function

    Public Function GetHashCode1(ByVal obj As Object) _
        As Integer Implements IEqualityComparer.GetHashCode
        Return obj.ToString().ToLower().GetHashCode()
    End Function
End Class

Public Class SamplesHashtable

    Public Shared Sub Main()

        ' Create a hash table using the default comparer.
        Dim myHT1 As New Hashtable(3, System.Convert.ToSingle(0.8))
        myHT1.Add("FIRST", "Hello")
        myHT1.Add("SECOND", "World")
        myHT1.Add("THIRD", "!")

        ' Create a hash table using the specified IEqualityComparer that uses
        ' the CaseInsensitiveComparer.DefaultInvariant to determine equality.
        Dim myHT2 As New Hashtable(3, System.Convert.ToSingle(0.8), _
            New myCultureComparer())

        myHT2.Add("FIRST", "Hello")
        myHT2.Add("SECOND", "World")
        myHT2.Add("THIRD", "!")

        ' Create a hash table using an IEqualityComparer that is based on
        ' the Turkish culture (tr-TR) where "I" is not the uppercase
        ' version of "i".
        Dim myCul As New CultureInfo("tr-TR")
        Dim myHT3 As New Hashtable(3, System.Convert.ToSingle(0.8), _
            New myCultureComparer(myCul))

        myHT3.Add("FIRST", "Hello")
        myHT3.Add("SECOND", "World")
        myHT3.Add("THIRD", "!")

        ' Search for a key in each hash table.
        Console.WriteLine("first is in myHT1: {0}", myHT1.ContainsKey("first"))
        Console.WriteLine("first is in myHT2: {0}", myHT2.ContainsKey("first"))
        Console.WriteLine("first is in myHT3: {0}", myHT3.ContainsKey("first"))

    End Sub

End Class


'This code produces the following output.
'Results vary depending on the system's culture settings.
'
'first is in myHT1: False
'first is in myHT2: True
'first is in myHT3: False

Opmerkingen

Als u de initiële capaciteit opgeeft, hoeft u niet meer een aantal formaatbewerkingen uit te voeren terwijl u elementen aan het Hashtable object toevoegt. De capaciteit wordt automatisch verhoogd op basis van de belastingfactor.

De belastingfactor is de maximale verhouding van elementen tot buckets. Een kleinere belastingfactor betekent sneller zoeken naar de kosten van een verhoogd geheugenverbruik. Een belastingfactor van 1,0 is de beste balans tussen snelheid en grootte.

Wanneer de werkelijke belastingfactor de opgegeven belastingfactor bereikt, wordt het aantal buckets automatisch verhoogd tot het kleinste priemnummer dat groter is dan twee keer het huidige aantal buckets.

Het IEqualityComparer object bevat zowel de hashcodeprovider als de vergelijkingsfunctie. Als een IEqualityComparer object in de Hashtable constructor wordt gebruikt, zijn de objecten die als sleutels in de Hashtable constructor worden gebruikt, niet vereist om de Object.GetHashCode en Object.Equals methoden te overschrijven.

De hashcodeprovider dispenseert hash-codes voor sleutels in de Hashtable. De standaard-hashcodeprovider is de implementatie van de sleutel.Object.GetHashCode

De vergelijkingsfunctie bepaalt of twee sleutels gelijk zijn. Elke sleutel in een Hashtable moet uniek zijn. De standaard comparer is de implementatie van de sleutel.Object.Equals

De IEqualityComparer functie maakt scenario's mogelijk, zoals het uitvoeren van zoekopdrachten met hoofdlettergevoelige tekenreeksen.

Deze constructor is een O(n) bewerking, waarbij n de capacity parameter zich bevindt.

Zie ook

Van toepassing op

Hashtable(Int32, IHashCodeProvider, IComparer)

Let op

Please use Hashtable(int, IEqualityComparer) instead.

Initialiseert een nieuwe, lege instantie van de Hashtable klasse met behulp van de opgegeven initiële capaciteit, hashcodeprovider, vergelijking en de standaardbelastingsfactor.

public:
 Hashtable(int capacity, System::Collections::IHashCodeProvider ^ hcp, System::Collections::IComparer ^ comparer);
public Hashtable(int capacity, System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer);
[System.Obsolete("Please use Hashtable(int, IEqualityComparer) instead.")]
public Hashtable(int capacity, System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer);
new System.Collections.Hashtable : int * System.Collections.IHashCodeProvider * System.Collections.IComparer -> System.Collections.Hashtable
[<System.Obsolete("Please use Hashtable(int, IEqualityComparer) instead.")>]
new System.Collections.Hashtable : int * System.Collections.IHashCodeProvider * System.Collections.IComparer -> System.Collections.Hashtable
Public Sub New (capacity As Integer, hcp As IHashCodeProvider, comparer As IComparer)

Parameters

capacity
Int32

Het geschatte aantal elementen dat het Hashtable object in eerste instantie kan bevatten.

hcp
IHashCodeProvider

Het IHashCodeProvider object dat de hashcodes levert voor alle sleutels in de Hashtable.

– of –

null om de standaard-hashcodeprovider te gebruiken. Dit is de implementatie van GetHashCode()elke sleutel.

comparer
IComparer

Het IComparer object dat moet worden gebruikt om te bepalen of twee sleutels gelijk zijn.

– of –

null om de standaard-vergelijkingsfunctie te gebruiken. Dit is de implementatie van Equals(Object)elke sleutel.

Kenmerken

Uitzonderingen

capacity is kleiner dan nul.

Opmerkingen

Als u de initiële capaciteit opgeeft, hoeft u niet meer een aantal formaatbewerkingen uit te voeren terwijl u elementen aan het Hashtable object toevoegt. De capaciteit wordt automatisch verhoogd op basis van de belastingfactor.

De belastingfactor is de maximale verhouding van elementen tot buckets. Een kleinere belastingfactor betekent sneller zoeken naar de kosten van een verhoogd geheugenverbruik.

Wanneer de werkelijke belastingfactor de opgegeven belastingfactor bereikt, wordt het aantal buckets automatisch verhoogd tot het kleinste priemnummer dat groter is dan twee keer het huidige aantal buckets.

De hashcodeprovider dispenseert hash-codes voor sleutels in de Hashtable. De standaard-hashcodeprovider is de implementatie van de sleutel.Object.GetHashCode

De vergelijkingsfunctie bepaalt of twee sleutels gelijk zijn. Elke sleutel in een Hashtable moet uniek zijn. De standaard comparer is de implementatie van de sleutel.Object.Equals

De aangepaste hashcodeprovider en de aangepaste vergelijkingsfunctie maken scenario's mogelijk, zoals het uitvoeren van zoekacties met hoofdlettergevoelige tekenreeksen.

Deze constructor is een O(n) bewerking, waarbij n de capacity parameter zich bevindt.

Zie ook

Van toepassing op

Hashtable(IDictionary, Single, IEqualityComparer)

Initialiseert een nieuw exemplaar van de Hashtable klasse door de elementen uit de opgegeven woordenlijst naar het nieuwe Hashtable object te kopiëren. Het nieuwe Hashtable object heeft een initiële capaciteit die gelijk is aan het aantal gekopieerde elementen en gebruikt de opgegeven belastingsfactor en IEqualityComparer het opgegeven object.

public:
 Hashtable(System::Collections::IDictionary ^ d, float loadFactor, System::Collections::IEqualityComparer ^ equalityComparer);
public Hashtable(System.Collections.IDictionary d, float loadFactor, System.Collections.IEqualityComparer equalityComparer);
new System.Collections.Hashtable : System.Collections.IDictionary * single * System.Collections.IEqualityComparer -> System.Collections.Hashtable
Public Sub New (d As IDictionary, loadFactor As Single, equalityComparer As IEqualityComparer)

Parameters

d
IDictionary

Het IDictionary object dat moet worden gekopieerd naar een nieuw Hashtable object.

loadFactor
Single

Een getal in het bereik van 0,1 tot en met 1,0 dat wordt vermenigvuldigd met de standaardwaarde die de beste prestaties biedt. Het resultaat is de maximale verhouding tussen elementen en buckets.

equalityComparer
IEqualityComparer

Het IEqualityComparer object dat de hashcodeprovider en de vergelijkingsfunctie definieert die moet worden gebruikt met de Hashtable.

– of –

null om de standaard-hashcodeprovider en de standaardvergelijker te gebruiken. De standaard-hashcodeprovider is de implementatie van GetHashCode() elke sleutel en de standaardvergelijker is de implementatie van Equals(Object)elke sleutel.

Uitzonderingen

loadFactor is kleiner dan 0,1.

– of –

loadFactor is groter dan 1,0.

Voorbeelden

In het volgende codevoorbeeld worden hashtabellen gemaakt met behulp van verschillende Hashtable constructors en worden de verschillen in het gedrag van de hash-tabellen gedemonstreerd, zelfs als elke tabel dezelfde elementen bevat.

using System;
using System.Collections;
using System.Globalization;

class myCultureComparer : IEqualityComparer
{
    public CaseInsensitiveComparer myComparer;

    public myCultureComparer()
    {
        myComparer = CaseInsensitiveComparer.DefaultInvariant;
    }

    public myCultureComparer(CultureInfo myCulture)
    {
        myComparer = new CaseInsensitiveComparer(myCulture);
    }

    public new bool Equals(object x, object y)
    {
        if (myComparer.Compare(x, y) == 0)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    public int GetHashCode(object obj)
    {
        // Compare the hash code for the lowercase versions of the strings.
        return obj.ToString().ToLower().GetHashCode();
    }
}

public class SamplesHashtable
{

    public static void Main()
    {

        // Create the dictionary.
        SortedList mySL = new SortedList();
        mySL.Add("FIRST", "Hello");
        mySL.Add("SECOND", "World");
        mySL.Add("THIRD", "!");

        // Create a hash table using the default comparer.
        Hashtable myHT1 = new Hashtable(mySL, .8f);

        // Create a hash table using the specified IEqualityComparer that uses
        // the CaseInsensitiveComparer.DefaultInvariant to determine equality.
        Hashtable myHT2 = new Hashtable(mySL, .8f,
            new myCultureComparer());

        // Create a hash table using an IEqualityComparer that is based on
        // the Turkish culture (tr-TR) where "I" is not the uppercase
        // version of "i".
        CultureInfo myCul = new CultureInfo("tr-TR");
        Hashtable myHT3 = new Hashtable(mySL, .8f, new myCultureComparer(myCul));

        // Search for a key in each hash table.
        Console.WriteLine("first is in myHT1: {0}", myHT1.ContainsKey("first"));
        Console.WriteLine("first is in myHT2: {0}", myHT2.ContainsKey("first"));
        Console.WriteLine("first is in myHT3: {0}", myHT3.ContainsKey("first"));
    }
}


/*
This code produces the following output.
Results vary depending on the system's culture settings.

first is in myHT1: False
first is in myHT2: True
first is in myHT3: False

*/
Imports System.Collections
Imports System.Globalization

Public Class myCultureComparer
    Implements IEqualityComparer

    Dim myComparer As CaseInsensitiveComparer

    Public Sub New()
        myComparer = CaseInsensitiveComparer.DefaultInvariant
    End Sub

    Public Sub New(ByVal myCulture As CultureInfo)
        myComparer = New CaseInsensitiveComparer(myCulture)
    End Sub

    Public Function Equals1(ByVal x As Object, ByVal y As Object) _
        As Boolean Implements IEqualityComparer.Equals

        If (myComparer.Compare(x, y) = 0) Then
            Return True
        Else
            Return False
        End If
    End Function

    Public Function GetHashCode1(ByVal obj As Object) _
        As Integer Implements IEqualityComparer.GetHashCode
        Return obj.ToString().ToLower().GetHashCode()
    End Function
End Class

Public Class SamplesHashtable   

   Public Shared Sub Main()

      ' Create the dictionary.
      Dim mySL As New SortedList()
      mySL.Add("FIRST", "Hello")
      mySL.Add("SECOND", "World")
      mySL.Add("THIRD", "!")

      ' Create a hash table using the default comparer.
      Dim myHT1 As New Hashtable(mySL, System.Convert.ToSingle(0.8))

      ' Create a hash table using the specified IEqualityComparer that uses
      ' the CaseInsensitiveComparer.DefaultInvariant to determine equality.
      Dim myHT2 As New Hashtable(mySL, System.Convert.ToSingle(0.8), _
        New myCultureComparer())

      ' Create a hash table using an IEqualityComparer that is based on
      ' the Turkish culture (tr-TR) where "I" is not the uppercase
      ' version of "i".
      Dim myCul As New CultureInfo("tr-TR")
      Dim myHT3 As New Hashtable(mySL, System.Convert.ToSingle(0.8), _
        New myCultureComparer(myCul))

      ' Search for a key in each hash table.
      Console.WriteLine("first is in myHT1: {0}", myHT1.ContainsKey("first"))
      Console.WriteLine("first is in myHT2: {0}", myHT2.ContainsKey("first"))
      Console.WriteLine("first is in myHT3: {0}", myHT3.ContainsKey("first"))

   End Sub

End Class


'This code produces the following output.
'Results vary depending on the system's culture settings.
'
'first is in myHT1: False
'first is in myHT2: True
'first is in myHT3: False

Opmerkingen

De initiële capaciteit wordt ingesteld op het aantal elementen in de bronwoordenlijst. De capaciteit wordt automatisch verhoogd op basis van de belastingfactor.

De belastingfactor is de maximale verhouding van elementen tot buckets. Een kleinere belastingfactor betekent sneller zoeken naar de kosten van een verhoogd geheugenverbruik. Een belastingfactor van 1,0 is de beste balans tussen snelheid en grootte.

Wanneer de werkelijke belastingfactor de opgegeven belastingfactor bereikt, wordt het aantal buckets automatisch verhoogd tot het kleinste priemnummer dat groter is dan twee keer het huidige aantal buckets.

Het IEqualityComparer object bevat zowel de hashcodeprovider als de vergelijkingsfunctie. Als een IEqualityComparer object wordt gebruikt in de Hashtable constructor, zijn de objecten die als sleutels in het Hashtable object worden gebruikt, niet vereist om de Object.GetHashCode en Object.Equals methoden te overschrijven.

De hashcodeprovider dispenseert hash-codes voor sleutels in de Hashtable. De standaard-hashcodeprovider is de implementatie van de sleutel.Object.GetHashCode

De vergelijkingsfunctie bepaalt of twee sleutels gelijk zijn. Elke sleutel in een Hashtable moet uniek zijn. De standaard comparer is de implementatie van de sleutel.Object.Equals

De IEqualityComparer functie maakt scenario's mogelijk, zoals het uitvoeren van zoekopdrachten met hoofdlettergevoelige tekenreeksen.

De elementen van het nieuwe Hashtable worden gesorteerd in dezelfde volgorde waarin de enumerator het IDictionary object doorloopt.

Deze constructor is een O(n) bewerking, waarbij n het aantal elementen in de d parameter is.

Zie ook

Van toepassing op

Hashtable(IDictionary, IHashCodeProvider, IComparer)

Let op

Please use Hashtable(IDictionary, IEqualityComparer) instead.

Initialiseert een nieuw exemplaar van de Hashtable klasse door de elementen uit de opgegeven woordenlijst naar het nieuwe Hashtable object te kopiëren. Het nieuwe Hashtable object heeft een initiële capaciteit die gelijk is aan het aantal gekopieerde elementen en maakt gebruik van de standaardbelastingsfactor en de opgegeven hashcodeprovider en vergelijkingsfunctie. Deze API is verouderd. Zie voor een alternatief Hashtable(IDictionary, IEqualityComparer).

public:
 Hashtable(System::Collections::IDictionary ^ d, System::Collections::IHashCodeProvider ^ hcp, System::Collections::IComparer ^ comparer);
public Hashtable(System.Collections.IDictionary d, System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer);
[System.Obsolete("Please use Hashtable(IDictionary, IEqualityComparer) instead.")]
public Hashtable(System.Collections.IDictionary d, System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer);
new System.Collections.Hashtable : System.Collections.IDictionary * System.Collections.IHashCodeProvider * System.Collections.IComparer -> System.Collections.Hashtable
[<System.Obsolete("Please use Hashtable(IDictionary, IEqualityComparer) instead.")>]
new System.Collections.Hashtable : System.Collections.IDictionary * System.Collections.IHashCodeProvider * System.Collections.IComparer -> System.Collections.Hashtable
Public Sub New (d As IDictionary, hcp As IHashCodeProvider, comparer As IComparer)

Parameters

d
IDictionary

Het IDictionary object dat moet worden gekopieerd naar een nieuw Hashtable object.

hcp
IHashCodeProvider

Het IHashCodeProvider object dat de hashcodes levert voor alle sleutels in de Hashtable.

– of –

null om de standaard-hashcodeprovider te gebruiken. Dit is de implementatie van GetHashCode()elke sleutel.

comparer
IComparer

Het IComparer object dat moet worden gebruikt om te bepalen of twee sleutels gelijk zijn.

– of –

null om de standaard-vergelijkingsfunctie te gebruiken. Dit is de implementatie van Equals(Object)elke sleutel.

Kenmerken

Uitzonderingen

Opmerkingen

De initiële capaciteit wordt ingesteld op het aantal elementen in de bronwoordenlijst. De capaciteit wordt automatisch verhoogd op basis van de belastingfactor.

De belastingfactor is de maximale verhouding van elementen tot buckets. Een kleinere belastingfactor betekent sneller zoeken naar de kosten van een verhoogd geheugenverbruik.

Wanneer de werkelijke belastingfactor de opgegeven belastingfactor bereikt, wordt het aantal buckets automatisch verhoogd tot het kleinste priemnummer dat groter is dan twee keer het huidige aantal buckets.

De hashcodeprovider dispenseert hash-codes voor sleutels in het Hashtable object. De standaard-hashcodeprovider is de implementatie van de sleutel.Object.GetHashCode

De vergelijkingsfunctie bepaalt of twee sleutels gelijk zijn. Elke sleutel in een Hashtable moet uniek zijn. De standaard comparer is de implementatie van de sleutel.Object.Equals

De aangepaste hashcodeprovider en de aangepaste vergelijkingsfunctie maken scenario's mogelijk, zoals het uitvoeren van zoekacties met hoofdlettergevoelige tekenreeksen.

De elementen van het nieuwe Hashtable worden gesorteerd in dezelfde volgorde waarin de enumerator het IDictionary object doorloopt.

Deze constructor is een O(n) bewerking, waarbij n het aantal elementen in de d parameter is.

Zie ook

Van toepassing op

Hashtable(Int32, Single)

Initialiseert een nieuwe, lege instantie van de Hashtable klasse met behulp van de opgegeven initiële capaciteit en belastingfactor, en de standaard-hashcodeprovider en vergelijkingsfunctie.

public:
 Hashtable(int capacity, float loadFactor);
public Hashtable(int capacity, float loadFactor);
new System.Collections.Hashtable : int * single -> System.Collections.Hashtable
Public Sub New (capacity As Integer, loadFactor As Single)

Parameters

capacity
Int32

Het geschatte aantal elementen dat het Hashtable object in eerste instantie kan bevatten.

loadFactor
Single

Een getal in het bereik van 0,1 tot en met 1,0 dat wordt vermenigvuldigd met de standaardwaarde die de beste prestaties biedt. Het resultaat is de maximale verhouding tussen elementen en buckets.

Uitzonderingen

capacity is kleiner dan nul.

– of –

loadFactor is kleiner dan 0,1.

– of –

loadFactor is groter dan 1,0.

capacity veroorzaakt een overloop.

Voorbeelden

In het volgende codevoorbeeld worden hashtabellen gemaakt met behulp van verschillende Hashtable constructors en worden de verschillen in het gedrag van de hash-tabellen gedemonstreerd, zelfs als elke tabel dezelfde elementen bevat.

using System;
using System.Collections;
using System.Globalization;

class myCultureComparer : IEqualityComparer
{
    public CaseInsensitiveComparer myComparer;

    public myCultureComparer()
    {
        myComparer = CaseInsensitiveComparer.DefaultInvariant;
    }

    public myCultureComparer(CultureInfo myCulture)
    {
        myComparer = new CaseInsensitiveComparer(myCulture);
    }

    public new bool Equals(object x, object y)
    {
        if (myComparer.Compare(x, y) == 0)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    public int GetHashCode(object obj)
    {
        // Compare the hash code for the lowercase versions of the strings.
        return obj.ToString().ToLower().GetHashCode();
    }
}

public class SamplesHashtable
{

    public static void Main()
    {

        // Create a hash table using the default comparer.
        Hashtable myHT1 = new Hashtable(3, .8f);
        myHT1.Add("FIRST", "Hello");
        myHT1.Add("SECOND", "World");
        myHT1.Add("THIRD", "!");

        // Create a hash table using the specified IEqualityComparer that uses
        // the CaseInsensitiveComparer.DefaultInvariant to determine equality.
        Hashtable myHT2 = new Hashtable(3, .8f, new myCultureComparer());
        myHT2.Add("FIRST", "Hello");
        myHT2.Add("SECOND", "World");
        myHT2.Add("THIRD", "!");

        // Create a hash table using an IEqualityComparer that is based on
        // the Turkish culture (tr-TR) where "I" is not the uppercase
        // version of "i".
        CultureInfo myCul = new CultureInfo("tr-TR");
        Hashtable myHT3 = new Hashtable(3, .8f, new myCultureComparer(myCul));

        myHT3.Add("FIRST", "Hello");
        myHT3.Add("SECOND", "World");
        myHT3.Add("THIRD", "!");

        // Search for a key in each hash table.
        Console.WriteLine("first is in myHT1: {0}", myHT1.ContainsKey("first"));
        Console.WriteLine("first is in myHT2: {0}", myHT2.ContainsKey("first"));
        Console.WriteLine("first is in myHT3: {0}", myHT3.ContainsKey("first"));
    }
}


/*
This code produces the following output.
Results vary depending on the system's culture settings.

first is in myHT1: False
first is in myHT2: True
first is in myHT3: False

*/
Imports System.Collections
Imports System.Globalization

Public Class myCultureComparer
    Implements IEqualityComparer

    Dim myComparer As CaseInsensitiveComparer

    Public Sub New()
        myComparer = CaseInsensitiveComparer.DefaultInvariant
    End Sub

    Public Sub New(ByVal myCulture As CultureInfo)
        myComparer = New CaseInsensitiveComparer(myCulture)
    End Sub

    Public Function Equals1(ByVal x As Object, ByVal y As Object) _
        As Boolean Implements IEqualityComparer.Equals

        If (myComparer.Compare(x, y) = 0) Then
            Return True
        Else
            Return False
        End If
    End Function

    Public Function GetHashCode1(ByVal obj As Object) _
        As Integer Implements IEqualityComparer.GetHashCode
        Return obj.ToString().ToLower().GetHashCode()
    End Function
End Class

Public Class SamplesHashtable

    Public Shared Sub Main()

        ' Create a hash table using the default comparer.
        Dim myHT1 As New Hashtable(3, System.Convert.ToSingle(0.8))
        myHT1.Add("FIRST", "Hello")
        myHT1.Add("SECOND", "World")
        myHT1.Add("THIRD", "!")

        ' Create a hash table using the specified IEqualityComparer that uses
        ' the CaseInsensitiveComparer.DefaultInvariant to determine equality.
        Dim myHT2 As New Hashtable(3, System.Convert.ToSingle(0.8), _
            New myCultureComparer())

        myHT2.Add("FIRST", "Hello")
        myHT2.Add("SECOND", "World")
        myHT2.Add("THIRD", "!")

        ' Create a hash table using an IEqualityComparer that is based on
        ' the Turkish culture (tr-TR) where "I" is not the uppercase
        ' version of "i".
        Dim myCul As New CultureInfo("tr-TR")
        Dim myHT3 As New Hashtable(3, System.Convert.ToSingle(0.8), _
            New myCultureComparer(myCul))

        myHT3.Add("FIRST", "Hello")
        myHT3.Add("SECOND", "World")
        myHT3.Add("THIRD", "!")

        ' Search for a key in each hash table.
        Console.WriteLine("first is in myHT1: {0}", myHT1.ContainsKey("first"))
        Console.WriteLine("first is in myHT2: {0}", myHT2.ContainsKey("first"))
        Console.WriteLine("first is in myHT3: {0}", myHT3.ContainsKey("first"))

    End Sub

End Class


'This code produces the following output.
'Results vary depending on the system's culture settings.
'
'first is in myHT1: False
'first is in myHT2: True
'first is in myHT3: False

Opmerkingen

Als u de initiële capaciteit opgeeft, hoeft u niet meer een aantal formaatbewerkingen uit te voeren terwijl u elementen aan het Hashtable object toevoegt. De capaciteit wordt automatisch verhoogd op basis van de belastingfactor.

De belastingfactor is de maximale verhouding van elementen tot buckets. Een kleinere belastingfactor betekent sneller zoeken naar de kosten van een verhoogd geheugenverbruik. Een belastingfactor van 1,0 is de beste balans tussen snelheid en grootte.

Wanneer de werkelijke belastingfactor de opgegeven belastingfactor bereikt, wordt het aantal buckets automatisch verhoogd tot het kleinste priemnummer dat groter is dan twee keer het huidige aantal buckets.

De hashcodeprovider dispenseert hash-codes voor sleutels in de Hashtable. De standaard-hashcodeprovider is de implementatie van de sleutel.Object.GetHashCode

De vergelijkingsfunctie bepaalt of twee sleutels gelijk zijn. Elke sleutel in een Hashtable moet uniek zijn. De standaard comparer is de implementatie van de sleutel.Object.Equals

Deze constructor is een O(n) bewerking, waarbij n de capacity parameter zich bevindt.

Zie ook

Van toepassing op

Hashtable(SerializationInfo, StreamingContext)

Initialiseert een nieuwe, lege instantie van de Hashtable klasse die kan worden geserialiseerd met behulp van de opgegeven SerializationInfo objecten.StreamingContext

protected:
 Hashtable(System::Runtime::Serialization::SerializationInfo ^ info, System::Runtime::Serialization::StreamingContext context);
protected Hashtable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
new System.Collections.Hashtable : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> System.Collections.Hashtable
Protected Sub New (info As SerializationInfo, context As StreamingContext)

Parameters

info
SerializationInfo

Een SerializationInfo object met de informatie die nodig is om het Hashtable object te serialiseren.

context
StreamingContext

Een StreamingContext object met de bron en het doel van de geserialiseerde stroom die is gekoppeld aan de Hashtable.

Uitzonderingen

info is null.

Opmerkingen

De capaciteit van een hash-tabel wordt gebruikt om het optimale aantal hash-tabelbuckets te berekenen op basis van de belastingfactor. Capaciteit wordt automatisch verhoogd naar behoefte.

De belastingfactor is de maximale verhouding van elementen tot buckets. Een kleinere belastingfactor betekent sneller zoeken naar de kosten van een verhoogd geheugenverbruik.

Wanneer de werkelijke belastingfactor de opgegeven belastingfactor bereikt, wordt het aantal buckets automatisch verhoogd tot het kleinste priemnummer dat groter is dan twee keer het huidige aantal buckets.

De hashcodeprovider dispenseert hash-codes voor sleutels in het Hashtable object. De standaard-hashcodeprovider is de implementatie van de sleutel.Object.GetHashCode

De vergelijkingsfunctie bepaalt of twee sleutels gelijk zijn. Elke sleutel in een Hashtable moet uniek zijn. De standaard comparer is de implementatie van de sleutel.Object.Equals

Deze constructor is een O(n) bewerking, waarbij n .Count

Omdat het serialiseren en deserialiseren van een enumerator voor een Hashtable kan ertoe leiden dat de elementen opnieuw worden gerangschikt, is het niet mogelijk om de opsomming voort te zetten zonder de Reset methode aan te roepen.

Zie ook

Van toepassing op

Hashtable(IHashCodeProvider, IComparer)

Let op

Please use Hashtable(IEqualityComparer) instead.

Initialiseert een nieuwe, lege instantie van de Hashtable klasse met behulp van de standaardinitiële capaciteit en belastingfactor, en de opgegeven hashcodeprovider en vergelijkingsfunctie.

public:
 Hashtable(System::Collections::IHashCodeProvider ^ hcp, System::Collections::IComparer ^ comparer);
public Hashtable(System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer);
[System.Obsolete("Please use Hashtable(IEqualityComparer) instead.")]
public Hashtable(System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer);
new System.Collections.Hashtable : System.Collections.IHashCodeProvider * System.Collections.IComparer -> System.Collections.Hashtable
[<System.Obsolete("Please use Hashtable(IEqualityComparer) instead.")>]
new System.Collections.Hashtable : System.Collections.IHashCodeProvider * System.Collections.IComparer -> System.Collections.Hashtable
Public Sub New (hcp As IHashCodeProvider, comparer As IComparer)

Parameters

hcp
IHashCodeProvider

Het IHashCodeProvider object dat de hash-codes levert voor alle sleutels in het Hashtable object.

– of –

null om de standaard-hashcodeprovider te gebruiken. Dit is de implementatie van GetHashCode()elke sleutel.

comparer
IComparer

Het IComparer object dat moet worden gebruikt om te bepalen of twee sleutels gelijk zijn.

– of –

null om de standaard-vergelijkingsfunctie te gebruiken. Dit is de implementatie van Equals(Object)elke sleutel.

Kenmerken

Opmerkingen

De capaciteit van een hash-tabel wordt gebruikt om het optimale aantal hash-tabelbuckets te berekenen op basis van de belastingfactor. Capaciteit wordt automatisch verhoogd naar behoefte.

De belastingfactor is de maximale verhouding van elementen tot buckets. Een kleinere belastingfactor betekent sneller zoeken naar de kosten van een verhoogd geheugenverbruik.

Wanneer de werkelijke belastingfactor de opgegeven belastingfactor bereikt, wordt het aantal buckets automatisch verhoogd tot het kleinste priemnummer dat groter is dan twee keer het huidige aantal buckets.

De hashcodeprovider dispenseert hash-codes voor sleutels in het Hashtable object. De standaard-hashcodeprovider is de implementatie van de sleutel.Object.GetHashCode

De vergelijkingsfunctie bepaalt of twee sleutels gelijk zijn. Elke sleutel in een Hashtable moet uniek zijn. De standaard comparer is de implementatie van de sleutel.Object.Equals

De aangepaste hashcodeprovider en de aangepaste vergelijkingsfunctie maken scenario's mogelijk, zoals het uitvoeren van zoekacties met hoofdlettergevoelige tekenreeksen.

Deze constructor is een O(1) bewerking.

Zie ook

Van toepassing op

Hashtable(IDictionary, Single)

Initialiseert een nieuw exemplaar van de Hashtable klasse door de elementen uit de opgegeven woordenlijst naar het nieuwe Hashtable object te kopiëren. Het nieuwe Hashtable object heeft een initiële capaciteit die gelijk is aan het aantal gekopieerde elementen en maakt gebruik van de opgegeven belastingfactor en de standaard-hashcodeprovider en vergelijkingsfunctie.

public:
 Hashtable(System::Collections::IDictionary ^ d, float loadFactor);
public Hashtable(System.Collections.IDictionary d, float loadFactor);
new System.Collections.Hashtable : System.Collections.IDictionary * single -> System.Collections.Hashtable
Public Sub New (d As IDictionary, loadFactor As Single)

Parameters

d
IDictionary

Het IDictionary object dat moet worden gekopieerd naar een nieuw Hashtable object.

loadFactor
Single

Een getal in het bereik van 0,1 tot en met 1,0 dat wordt vermenigvuldigd met de standaardwaarde die de beste prestaties biedt. Het resultaat is de maximale verhouding tussen elementen en buckets.

Uitzonderingen

loadFactor is kleiner dan 0,1.

– of –

loadFactor is groter dan 1,0.

Voorbeelden

In het volgende codevoorbeeld worden hashtabellen gemaakt met behulp van verschillende Hashtable constructors en worden de verschillen in het gedrag van de hash-tabellen gedemonstreerd, zelfs als elke tabel dezelfde elementen bevat.

using System;
using System.Collections;
using System.Globalization;

class myCultureComparer : IEqualityComparer
{
    public CaseInsensitiveComparer myComparer;

    public myCultureComparer()
    {
        myComparer = CaseInsensitiveComparer.DefaultInvariant;
    }

    public myCultureComparer(CultureInfo myCulture)
    {
        myComparer = new CaseInsensitiveComparer(myCulture);
    }

    public new bool Equals(object x, object y)
    {
        if (myComparer.Compare(x, y) == 0)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    public int GetHashCode(object obj)
    {
        // Compare the hash code for the lowercase versions of the strings.
        return obj.ToString().ToLower().GetHashCode();
    }
}

public class SamplesHashtable
{

    public static void Main()
    {

        // Create the dictionary.
        SortedList mySL = new SortedList();
        mySL.Add("FIRST", "Hello");
        mySL.Add("SECOND", "World");
        mySL.Add("THIRD", "!");

        // Create a hash table using the default comparer.
        Hashtable myHT1 = new Hashtable(mySL, .8f);

        // Create a hash table using the specified IEqualityComparer that uses
        // the CaseInsensitiveComparer.DefaultInvariant to determine equality.
        Hashtable myHT2 = new Hashtable(mySL, .8f,
            new myCultureComparer());

        // Create a hash table using an IEqualityComparer that is based on
        // the Turkish culture (tr-TR) where "I" is not the uppercase
        // version of "i".
        CultureInfo myCul = new CultureInfo("tr-TR");
        Hashtable myHT3 = new Hashtable(mySL, .8f, new myCultureComparer(myCul));

        // Search for a key in each hash table.
        Console.WriteLine("first is in myHT1: {0}", myHT1.ContainsKey("first"));
        Console.WriteLine("first is in myHT2: {0}", myHT2.ContainsKey("first"));
        Console.WriteLine("first is in myHT3: {0}", myHT3.ContainsKey("first"));
    }
}


/*
This code produces the following output.
Results vary depending on the system's culture settings.

first is in myHT1: False
first is in myHT2: True
first is in myHT3: False

*/
Imports System.Collections
Imports System.Globalization

Public Class myCultureComparer
    Implements IEqualityComparer

    Dim myComparer As CaseInsensitiveComparer

    Public Sub New()
        myComparer = CaseInsensitiveComparer.DefaultInvariant
    End Sub

    Public Sub New(ByVal myCulture As CultureInfo)
        myComparer = New CaseInsensitiveComparer(myCulture)
    End Sub

    Public Function Equals1(ByVal x As Object, ByVal y As Object) _
        As Boolean Implements IEqualityComparer.Equals

        If (myComparer.Compare(x, y) = 0) Then
            Return True
        Else
            Return False
        End If
    End Function

    Public Function GetHashCode1(ByVal obj As Object) _
        As Integer Implements IEqualityComparer.GetHashCode
        Return obj.ToString().ToLower().GetHashCode()
    End Function
End Class

Public Class SamplesHashtable   

   Public Shared Sub Main()

      ' Create the dictionary.
      Dim mySL As New SortedList()
      mySL.Add("FIRST", "Hello")
      mySL.Add("SECOND", "World")
      mySL.Add("THIRD", "!")

      ' Create a hash table using the default comparer.
      Dim myHT1 As New Hashtable(mySL, System.Convert.ToSingle(0.8))

      ' Create a hash table using the specified IEqualityComparer that uses
      ' the CaseInsensitiveComparer.DefaultInvariant to determine equality.
      Dim myHT2 As New Hashtable(mySL, System.Convert.ToSingle(0.8), _
        New myCultureComparer())

      ' Create a hash table using an IEqualityComparer that is based on
      ' the Turkish culture (tr-TR) where "I" is not the uppercase
      ' version of "i".
      Dim myCul As New CultureInfo("tr-TR")
      Dim myHT3 As New Hashtable(mySL, System.Convert.ToSingle(0.8), _
        New myCultureComparer(myCul))

      ' Search for a key in each hash table.
      Console.WriteLine("first is in myHT1: {0}", myHT1.ContainsKey("first"))
      Console.WriteLine("first is in myHT2: {0}", myHT2.ContainsKey("first"))
      Console.WriteLine("first is in myHT3: {0}", myHT3.ContainsKey("first"))

   End Sub

End Class


'This code produces the following output.
'Results vary depending on the system's culture settings.
'
'first is in myHT1: False
'first is in myHT2: True
'first is in myHT3: False

Opmerkingen

De initiële capaciteit wordt ingesteld op het aantal elementen in de bronwoordenlijst. De capaciteit wordt automatisch verhoogd op basis van de belastingfactor.

De belastingfactor is de maximale verhouding van elementen tot buckets. Een kleinere belastingfactor betekent sneller zoeken naar de kosten van een verhoogd geheugenverbruik. Een belastingfactor van 1,0 is de beste balans tussen snelheid en grootte.

Wanneer de werkelijke belastingfactor de opgegeven belastingfactor bereikt, wordt het aantal buckets automatisch verhoogd tot het kleinste priemnummer dat groter is dan twee keer het huidige aantal buckets.

De hashcodeprovider dispenseert hash-codes voor sleutels in het Hashtable object. De standaard-hashcodeprovider is de implementatie van de sleutel.Object.GetHashCode

De vergelijkingsfunctie bepaalt of twee sleutels gelijk zijn. Elke sleutel in een Hashtable moet uniek zijn. De standaard comparer is de implementatie van de sleutel.Object.Equals

De elementen van het nieuwe Hashtable worden gesorteerd in dezelfde volgorde waarin de enumerator het IDictionary object doorloopt.

Deze constructor is een O(n) bewerking, waarbij n het aantal elementen in de d parameter is.

Zie ook

Van toepassing op

Hashtable(IDictionary, IEqualityComparer)

Initialiseert een nieuw exemplaar van de Hashtable klasse door de elementen uit de opgegeven woordenlijst te kopiëren naar een nieuw Hashtable object. Het nieuwe Hashtable object heeft een initiële capaciteit die gelijk is aan het aantal gekopieerde elementen en gebruikt de standaardbelastingsfactor en het opgegeven IEqualityComparer object.

public:
 Hashtable(System::Collections::IDictionary ^ d, System::Collections::IEqualityComparer ^ equalityComparer);
public Hashtable(System.Collections.IDictionary d, System.Collections.IEqualityComparer equalityComparer);
new System.Collections.Hashtable : System.Collections.IDictionary * System.Collections.IEqualityComparer -> System.Collections.Hashtable
Public Sub New (d As IDictionary, equalityComparer As IEqualityComparer)

Parameters

d
IDictionary

Het IDictionary object dat moet worden gekopieerd naar een nieuw Hashtable object.

equalityComparer
IEqualityComparer

Het IEqualityComparer object dat de hashcodeprovider en de vergelijkingsfunctie definieert die moet worden gebruikt met de Hashtable.

– of –

null om de standaard-hashcodeprovider en de standaardvergelijker te gebruiken. De standaard-hashcodeprovider is de implementatie van GetHashCode() elke sleutel en de standaardvergelijker is de implementatie van Equals(Object)elke sleutel.

Uitzonderingen

Voorbeelden

In het volgende codevoorbeeld worden hashtabellen gemaakt met behulp van verschillende Hashtable constructors en worden de verschillen in het gedrag van de hash-tabellen gedemonstreerd, zelfs als elke tabel dezelfde elementen bevat.

using System;
using System.Collections;
using System.Globalization;

class myCultureComparer : IEqualityComparer
{
    public CaseInsensitiveComparer myComparer;

    public myCultureComparer()
    {
        myComparer = CaseInsensitiveComparer.DefaultInvariant;
    }

    public myCultureComparer(CultureInfo myCulture)
    {
        myComparer = new CaseInsensitiveComparer(myCulture);
    }

    public new bool Equals(object x, object y)
    {
        return myComparer.Compare(x, y) == 0;
    }

    public int GetHashCode(object obj)
    {
        // Compare the hash code for the lowercase versions of the strings.
        return obj.ToString().ToLower().GetHashCode();
    }
}

public class SamplesHashtable
{

    public static void Main()
    {

        // Create the dictionary.
        var mySL = new SortedList();
        mySL.Add("FIRST", "Hello");
        mySL.Add("SECOND", "World");
        mySL.Add("THIRD", "!");

        // Create a hash table using the default comparer.
        var myHT1 = new Hashtable(mySL);

        // Create a hash table using the specified IEqualityComparer that uses
        // the CaseInsensitiveComparer.DefaultInvariant to determine equality.
        var myHT2 = new Hashtable(mySL, new myCultureComparer());

        // Create a hash table using an IEqualityComparer that is based on
        // the Turkish culture (tr-TR) where "I" is not the uppercase
        // version of "i".
        var myCul = new CultureInfo("tr-TR");
        var myHT3 = new Hashtable(mySL, new myCultureComparer(myCul));

        // Search for a key in each hash table.
        Console.WriteLine($"first is in myHT1: {myHT1.ContainsKey("first")}");
        Console.WriteLine($"first is in myHT2: {myHT2.ContainsKey("first")}");
        Console.WriteLine($"first is in myHT3: {myHT3.ContainsKey("first")}");
    }
}


/*
This code produces the following output.
Results vary depending on the system's culture settings.

first is in myHT1: False
first is in myHT2: True
first is in myHT3: False

*/
Imports System.Collections
Imports System.Globalization

Public Class myCultureComparer
    Implements IEqualityComparer

    Dim myComparer As CaseInsensitiveComparer

    Public Sub New()
        myComparer = CaseInsensitiveComparer.DefaultInvariant
    End Sub

    Public Sub New(ByVal myCulture As CultureInfo)
        myComparer = New CaseInsensitiveComparer(myCulture)
    End Sub

    Public Function Equals1(ByVal x As Object, ByVal y As Object) _
        As Boolean Implements IEqualityComparer.Equals

        Return myComparer.Compare(x, y) = 0
    End Function

    Public Function GetHashCode1(ByVal obj As Object) _
        As Integer Implements IEqualityComparer.GetHashCode
        Return obj.ToString().ToLower().GetHashCode()
    End Function
End Class

Public Class SamplesHashtable   

   Public Shared Sub Main()

      ' Create the dictionary.
      Dim mySL As New SortedList()
      mySL.Add("FIRST", "Hello")
      mySL.Add("SECOND", "World")
      mySL.Add("THIRD", "!")

      ' Create a hash table using the default comparer.
      Dim myHT1 As New Hashtable(mySL)

      ' Create a hash table using the specified IEqualityComparer that uses
      ' the CaseInsensitiveComparer.DefaultInvariant to determine equality.
      Dim myHT2 As New Hashtable(mySL, New myCultureComparer())

      ' Create a hash table using an IEqualityComparer that is based on
      ' the Turkish culture (tr-TR) where "I" is not the uppercase
      ' version of "i".
      Dim myCul As New CultureInfo("tr-TR")
      Dim myHT3 As New Hashtable(mySL, New myCultureComparer(myCul))

      ' Search for a key in each hash table.
      Console.WriteLine($"first is in myHT1: {myHT1.ContainsKey("first")}")
      Console.WriteLine($"first is in myHT2: {myHT2.ContainsKey("first")}")
      Console.WriteLine($"first is in myHT3: {myHT3.ContainsKey("first")}")

   End Sub

End Class


'This code produces the following output.
'Results vary depending on the system's culture settings.
'
'first is in myHT1: False
'first is in myHT2: True
'first is in myHT3: False

Opmerkingen

De initiële capaciteit wordt ingesteld op het aantal elementen in de bronwoordenlijst. De capaciteit wordt automatisch verhoogd op basis van de belastingfactor.

De belastingfactor is de maximale verhouding van elementen tot buckets. Een kleinere belastingfactor betekent sneller zoeken naar de kosten van een verhoogd geheugenverbruik.

Wanneer de werkelijke belastingfactor de opgegeven belastingfactor bereikt, wordt het aantal buckets automatisch verhoogd tot het kleinste priemnummer dat groter is dan twee keer het huidige aantal buckets.

Het IEqualityComparer object bevat zowel de hashcodeprovider als de vergelijkingsfunctie. Als een IEqualityComparer object wordt gebruikt in de Hashtable constructor, zijn de objecten die als sleutels in het Hashtable object worden gebruikt, niet vereist om de Object.GetHashCode en Object.Equals methoden te overschrijven.

De hashcodeprovider dispenseert hash-codes voor sleutels in de Hashtable. De standaard-hashcodeprovider is de implementatie van de sleutel.Object.GetHashCode

De vergelijkingsfunctie bepaalt of twee sleutels gelijk zijn. Elke sleutel in een Hashtable moet uniek zijn. De standaard comparer is de implementatie van de sleutel.Object.Equals

De IEqualityComparer functie maakt scenario's mogelijk, zoals het uitvoeren van zoekopdrachten met hoofdlettergevoelige tekenreeksen.

De elementen van het nieuwe Hashtable worden gesorteerd in dezelfde volgorde waarin de enumerator het IDictionary object doorloopt.

Deze constructor is een O(n) bewerking, waarbij n het aantal elementen in de d parameter is.

Zie ook

Van toepassing op

Hashtable(Int32)

Initialiseert een nieuwe, lege instantie van de Hashtable klasse met behulp van de opgegeven initiële capaciteit en de standaardbelastingsfactor, hashcodeprovider en vergelijkingsfunctie.

public:
 Hashtable(int capacity);
public Hashtable(int capacity);
new System.Collections.Hashtable : int -> System.Collections.Hashtable
Public Sub New (capacity As Integer)

Parameters

capacity
Int32

Het geschatte aantal elementen dat het Hashtable object in eerste instantie kan bevatten.

Uitzonderingen

capacity is kleiner dan nul.

Voorbeelden

In het volgende codevoorbeeld worden hashtabellen gemaakt met behulp van verschillende Hashtable constructors en worden de verschillen in het gedrag van de hash-tabellen gedemonstreerd, zelfs als elke tabel dezelfde elementen bevat.

using System;
using System.Collections;
using System.Globalization;

class myCultureComparer : IEqualityComparer
{
    public CaseInsensitiveComparer myComparer;

    public myCultureComparer()
    {
        myComparer = CaseInsensitiveComparer.DefaultInvariant;
    }

    public myCultureComparer(CultureInfo myCulture)
    {
        myComparer = new CaseInsensitiveComparer(myCulture);
    }

    public new bool Equals(object x, object y)
    {
        if (myComparer.Compare(x, y) == 0)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    public int GetHashCode(object obj)
    {
        // Compare the hash code for the lowercase versions of the strings.
        return obj.ToString().ToLower().GetHashCode();
    }
}

public class SamplesHashtable
{

    public static void Main()
    {

        // Create a hash table using the default comparer.
        Hashtable myHT1 = new Hashtable(3);
        myHT1.Add("FIRST", "Hello");
        myHT1.Add("SECOND", "World");
        myHT1.Add("THIRD", "!");

        // Create a hash table using the specified IEqualityComparer that uses
        // the CaseInsensitiveComparer.DefaultInvariant to determine equality.
        Hashtable myHT2 = new Hashtable(3, new myCultureComparer());
        myHT2.Add("FIRST", "Hello");
        myHT2.Add("SECOND", "World");
        myHT2.Add("THIRD", "!");

        // Create a hash table using an IEqualityComparer that is based on
        // the Turkish culture (tr-TR) where "I" is not the uppercase
        // version of "i".
        CultureInfo myCul = new CultureInfo("tr-TR");
        Hashtable myHT3 = new Hashtable(3, new myCultureComparer(myCul));
        myHT3.Add("FIRST", "Hello");
        myHT3.Add("SECOND", "World");
        myHT3.Add("THIRD", "!");

        // Search for a key in each hash table.
        Console.WriteLine("first is in myHT1: {0}", myHT1.ContainsKey("first"));
        Console.WriteLine("first is in myHT2: {0}", myHT2.ContainsKey("first"));
        Console.WriteLine("first is in myHT3: {0}", myHT3.ContainsKey("first"));
    }
}


/*
This code produces the following output.
Results vary depending on the system's culture settings.

first is in myHT1: False
first is in myHT2: True
first is in myHT3: False

*/
Imports System.Collections
Imports System.Globalization

Public Class myCultureComparer
    Implements IEqualityComparer

    Dim myComparer As CaseInsensitiveComparer

    Public Sub New()
        myComparer = CaseInsensitiveComparer.DefaultInvariant
    End Sub

    Public Sub New(ByVal myCulture As CultureInfo)
        myComparer = New CaseInsensitiveComparer(myCulture)
    End Sub

    Public Function Equals1(ByVal x As Object, ByVal y As Object) _
        As Boolean Implements IEqualityComparer.Equals

        If (myComparer.Compare(x, y) = 0) Then
            Return True
        Else
            Return False
        End If
    End Function

    Public Function GetHashCode1(ByVal obj As Object) _
        As Integer Implements IEqualityComparer.GetHashCode
        Return obj.ToString().ToLower().GetHashCode()
    End Function
End Class

Public Class SamplesHashtable   

   Public Shared Sub Main()

      ' Create a hash table using the default comparer.
      Dim myHT1 As New Hashtable(3)
      myHT1.Add("FIRST", "Hello")
      myHT1.Add("SECOND", "World")
      myHT1.Add("THIRD", "!")

      ' Create a hash table using the specified IEqualityComparer that uses
      ' the CaseInsensitiveComparer.DefaultInvariant to determine equality.
      Dim myHT2 As New Hashtable(3, New myCultureComparer())
      myHT2.Add("FIRST", "Hello")
      myHT2.Add("SECOND", "World")
      myHT2.Add("THIRD", "!")

      ' Create a hash table using an IEqualityComparer that is based on
      ' the Turkish culture (tr-TR) where "I" is not the uppercase
      ' version of "i".
      Dim myCul As New CultureInfo("tr-TR")
      Dim myHT3 As New Hashtable(3, New myCultureComparer(myCul))
      myHT3.Add("FIRST", "Hello")
      myHT3.Add("SECOND", "World")
      myHT3.Add("THIRD", "!")

      ' Search for a key in each hash table.
      Console.WriteLine("first is in myHT1: {0}", myHT1.ContainsKey("first"))
      Console.WriteLine("first is in myHT2: {0}", myHT2.ContainsKey("first"))
      Console.WriteLine("first is in myHT3: {0}", myHT3.ContainsKey("first"))

   End Sub

End Class


'This code produces the following output.
'Results vary depending on the system's culture settings.
'
'first is in myHT1: False
'first is in myHT2: True
'first is in myHT3: False

Opmerkingen

Als u de initiële capaciteit opgeeft, hoeft u niet meer een aantal formaatbewerkingen uit te voeren terwijl u elementen aan het Hashtable object toevoegt. De capaciteit wordt automatisch verhoogd op basis van de belastingfactor.

De belastingfactor is de maximale verhouding van elementen tot buckets. Een kleinere belastingfactor betekent sneller zoeken naar de kosten van een verhoogd geheugenverbruik.

Wanneer de werkelijke belastingfactor de opgegeven belastingfactor bereikt, wordt het aantal buckets automatisch verhoogd tot het kleinste priemnummer dat groter is dan twee keer het huidige aantal buckets.

De hashcodeprovider dispenseert hash-codes voor sleutels in de Hashtable. De standaard-hashcodeprovider is de implementatie van de sleutel.Object.GetHashCode

De vergelijkingsfunctie bepaalt of twee sleutels gelijk zijn. Elke sleutel in een Hashtable moet uniek zijn. De standaard comparer is de implementatie van de sleutel.Object.Equals

Deze constructor is een O(n) bewerking, waarbij n .capacity

Zie ook

Van toepassing op

Hashtable(IEqualityComparer)

Initialiseert een nieuwe, lege instantie van de Hashtable klasse met behulp van de standaardinitiële capaciteit en belastingsfactor en het opgegeven IEqualityComparer object.

public:
 Hashtable(System::Collections::IEqualityComparer ^ equalityComparer);
public Hashtable(System.Collections.IEqualityComparer equalityComparer);
new System.Collections.Hashtable : System.Collections.IEqualityComparer -> System.Collections.Hashtable
Public Sub New (equalityComparer As IEqualityComparer)

Parameters

equalityComparer
IEqualityComparer

Het IEqualityComparer object dat de hashcodeprovider en de vergelijkingsfunctie definieert die moet worden gebruikt met het Hashtable object.

– of –

null om de standaard-hashcodeprovider en de standaardvergelijker te gebruiken. De standaard-hashcodeprovider is de implementatie van GetHashCode() elke sleutel en de standaardvergelijker is de implementatie van Equals(Object)elke sleutel.

Voorbeelden

In het volgende codevoorbeeld worden hashtabellen gemaakt met behulp van verschillende Hashtable constructors en worden de verschillen in het gedrag van de hash-tabellen gedemonstreerd, zelfs als elke tabel dezelfde elementen bevat.

using System;
using System.Collections;
using System.Globalization;

class myComparer : IEqualityComparer
{
    public new bool Equals(object x, object y)
    {
        return x.Equals(y);
    }

    public int GetHashCode(object obj)
    {
        return obj.ToString().ToLower().GetHashCode();
    }
}

class myCultureComparer : IEqualityComparer
{
    public CaseInsensitiveComparer myComparer;

    public myCultureComparer()
    {
        myComparer = CaseInsensitiveComparer.DefaultInvariant;
    }

    public myCultureComparer(CultureInfo myCulture)
    {
        myComparer = new CaseInsensitiveComparer(myCulture);
    }

    public new bool Equals(object x, object y)
    {
        return myComparer.Compare(x, y) == 0;
    }

    public int GetHashCode(object obj)
    {
        return obj.ToString().ToLower().GetHashCode();
    }
}

public class SamplesHashtable
{

    public static void Main()
    {

        // Create a hash table using the default comparer.
        var myHT1 = new Hashtable();
        myHT1.Add("FIRST", "Hello");
        myHT1.Add("SECOND", "World");
        myHT1.Add("THIRD", "!");

        // Create a hash table using the specified IEqualityComparer that uses
        // the default Object.Equals to determine equality.
        var myHT2 = new Hashtable(new myComparer());
        myHT2.Add("FIRST", "Hello");
        myHT2.Add("SECOND", "World");
        myHT2.Add("THIRD", "!");

        // Create a hash table using a case-insensitive hash code provider and
        // case-insensitive comparer based on the InvariantCulture.
        Hashtable myHT3 = new Hashtable(
            CaseInsensitiveHashCodeProvider.DefaultInvariant,
            CaseInsensitiveComparer.DefaultInvariant);
        myHT3.Add("FIRST", "Hello");
        myHT3.Add("SECOND", "World");
        myHT3.Add("THIRD", "!");

        // Create a hash table using an IEqualityComparer that is based on
        // the Turkish culture (tr-TR) where "I" is not the uppercase
        // version of "i".
        var myCul = new CultureInfo("tr-TR");
        var myHT4 = new Hashtable(new myCultureComparer(myCul));
        myHT4.Add("FIRST", "Hello");
        myHT4.Add("SECOND", "World");
        myHT4.Add("THIRD", "!");

        // Search for a key in each hash table.
        Console.WriteLine($"first is in myHT1: {myHT1.ContainsKey("first")}");
        Console.WriteLine($"first is in myHT2: {myHT2.ContainsKey("first")}");
        Console.WriteLine($"first is in myHT3: {myHT3.ContainsKey("first")}");
        Console.WriteLine($"first is in myHT4: {myHT4.ContainsKey("first")}");
    }
}


/*
This code produces the following output.
Results vary depending on the system's culture settings.

first is in myHT1: False
first is in myHT2: False
first is in myHT3: True
first is in myHT4: False

*/
Imports System.Collections
Imports System.Globalization

Public Class myComparer
    Implements IEqualityComparer
    Public Function Equals1(ByVal x As Object, ByVal y As Object) _
        As Boolean Implements IEqualityComparer.Equals

        Return x.Equals(y)
    End Function

    Public Function GetHashCode1(ByVal obj As Object) _
        As Integer Implements IEqualityComparer.GetHashCode

        Return obj.ToString().ToLower().GetHashCode()
    End Function

End Class

Public Class myCultureComparer
    Implements IEqualityComparer

    Dim myComparer As CaseInsensitiveComparer

    Public Sub New()
        myComparer = CaseInsensitiveComparer.DefaultInvariant
    End Sub

    Public Sub New(ByVal myCulture As CultureInfo)
        myComparer = New CaseInsensitiveComparer(myCulture)
    End Sub

    Public Function Equals1(ByVal x As Object, ByVal y As Object) _
        As Boolean Implements IEqualityComparer.Equals

        Return myComparer.Compare(x, y) = 0
    End Function

    Public Function GetHashCode1(ByVal obj As Object) _
        As Integer Implements IEqualityComparer.GetHashCode
        Return obj.ToString().ToLower().GetHashCode()
    End Function
End Class

Public Class SamplesHashtable

    Public Shared Sub Main()

        ' Create a hash table using the default comparer.
        Dim myHT1 As New Hashtable()
        myHT1.Add("FIRST", "Hello")
        myHT1.Add("SECOND", "World")
        myHT1.Add("THIRD", "!")

        ' Create a hash table using the specified IEqualityComparer that uses
        ' the default Object.Equals to determine equality.
        Dim myHT2 As New Hashtable(New myComparer())
        myHT2.Add("FIRST", "Hello")
        myHT2.Add("SECOND", "World")
        myHT2.Add("THIRD", "!")

        ' Create a hash table using a case-insensitive hash code provider and
        ' case-insensitive comparer based on the InvariantCulture.
        Dim myHT3 As New Hashtable( _
            CaseInsensitiveHashCodeProvider.DefaultInvariant, _
            CaseInsensitiveComparer.DefaultInvariant)
        myHT3.Add("FIRST", "Hello")
        myHT3.Add("SECOND", "World")
        myHT3.Add("THIRD", "!")

        ' Create a hash table using an IEqualityComparer that is based on
        ' the Turkish culture (tr-TR) where "I" is not the uppercase
        ' version of "i".
        Dim myCul As New CultureInfo("tr-TR")
        Dim myHT4 As New Hashtable(New myCultureComparer(myCul))
        myHT4.Add("FIRST", "Hello")
        myHT4.Add("SECOND", "World")
        myHT4.Add("THIRD", "!")

        ' Search for a key in each hash table.
        Console.WriteLine($"first is in myHT1: {myHT1.ContainsKey("first")}")
        Console.WriteLine($"first is in myHT2: {myHT2.ContainsKey("first")}")
        Console.WriteLine($"first is in myHT3: {myHT3.ContainsKey("first")}")
        Console.WriteLine($"first is in myHT4: {myHT4.ContainsKey("first")}")

    End Sub

End Class

'This code produces the following output.
'Results vary depending on the system's culture settings.

'first is in myHT1: False
'first is in myHT2: False
'first is in myHT3: True
'first is in myHT4: False

Opmerkingen

De capaciteit van een hash-tabel wordt gebruikt om het optimale aantal hash-tabelbuckets te berekenen op basis van de belastingfactor. Capaciteit wordt automatisch verhoogd naar behoefte.

De belastingfactor is de maximale verhouding van elementen tot buckets. Een kleinere belastingfactor betekent sneller zoeken naar de kosten van een verhoogd geheugenverbruik.

Wanneer de werkelijke belastingfactor de opgegeven belastingfactor bereikt, wordt het aantal buckets automatisch verhoogd tot het kleinste priemnummer dat groter is dan twee keer het huidige aantal buckets.

Het IEqualityComparer object bevat zowel de hashcodeprovider als de vergelijkingsfunctie. Als een IEqualityComparer object wordt gebruikt in de Hashtable constructor, zijn de objecten die als sleutels in het Hashtable object worden gebruikt, niet vereist om de Object.GetHashCode en Object.Equals methoden te overschrijven.

De hashcodeprovider dispenseert hash-codes voor sleutels in de Hashtable. De standaard-hashcodeprovider is de implementatie van de sleutel.Object.GetHashCode

De vergelijkingsfunctie bepaalt of twee sleutels gelijk zijn. Elke sleutel in een Hashtable moet uniek zijn. De standaard comparer is de implementatie van de sleutel.Object.Equals

De IEqualityComparer functie maakt scenario's mogelijk, zoals het uitvoeren van zoekopdrachten met hoofdlettergevoelige tekenreeksen.

Deze constructor is een O(1) bewerking.

Zie ook

Van toepassing op

Hashtable(IDictionary)

Initialiseert een nieuw exemplaar van de Hashtable klasse door de elementen uit de opgegeven woordenlijst naar het nieuwe Hashtable object te kopiëren. Het nieuwe Hashtable object heeft een initiële capaciteit die gelijk is aan het aantal gekopieerde elementen en maakt gebruik van de standaardbelastingsfactor, hashcodeprovider en vergelijkingsfunctie.

public:
 Hashtable(System::Collections::IDictionary ^ d);
public Hashtable(System.Collections.IDictionary d);
new System.Collections.Hashtable : System.Collections.IDictionary -> System.Collections.Hashtable
Public Sub New (d As IDictionary)

Parameters

d
IDictionary

Het IDictionary object dat moet worden gekopieerd naar een nieuw Hashtable object.

Uitzonderingen

Voorbeelden

In het volgende codevoorbeeld worden hashtabellen gemaakt met behulp van verschillende Hashtable constructors en worden de verschillen in het gedrag van de hash-tabellen gedemonstreerd, zelfs als elke tabel dezelfde elementen bevat.

using System;
using System.Collections;
using System.Globalization;

class myCultureComparer : IEqualityComparer
{
    public CaseInsensitiveComparer myComparer;

    public myCultureComparer()
    {
        myComparer = CaseInsensitiveComparer.DefaultInvariant;
    }

    public myCultureComparer(CultureInfo myCulture)
    {
        myComparer = new CaseInsensitiveComparer(myCulture);
    }

    public new bool Equals(object x, object y)
    {
        return myComparer.Compare(x, y) == 0;
    }

    public int GetHashCode(object obj)
    {
        // Compare the hash code for the lowercase versions of the strings.
        return obj.ToString().ToLower().GetHashCode();
    }
}

public class SamplesHashtable
{

    public static void Main()
    {

        // Create the dictionary.
        var mySL = new SortedList();
        mySL.Add("FIRST", "Hello");
        mySL.Add("SECOND", "World");
        mySL.Add("THIRD", "!");

        // Create a hash table using the default comparer.
        var myHT1 = new Hashtable(mySL);

        // Create a hash table using the specified IEqualityComparer that uses
        // the CaseInsensitiveComparer.DefaultInvariant to determine equality.
        var myHT2 = new Hashtable(mySL, new myCultureComparer());

        // Create a hash table using an IEqualityComparer that is based on
        // the Turkish culture (tr-TR) where "I" is not the uppercase
        // version of "i".
        var myCul = new CultureInfo("tr-TR");
        var myHT3 = new Hashtable(mySL, new myCultureComparer(myCul));

        // Search for a key in each hash table.
        Console.WriteLine($"first is in myHT1: {myHT1.ContainsKey("first")}");
        Console.WriteLine($"first is in myHT2: {myHT2.ContainsKey("first")}");
        Console.WriteLine($"first is in myHT3: {myHT3.ContainsKey("first")}");
    }
}


/*
This code produces the following output.
Results vary depending on the system's culture settings.

first is in myHT1: False
first is in myHT2: True
first is in myHT3: False

*/
Imports System.Collections
Imports System.Globalization

Public Class myCultureComparer
    Implements IEqualityComparer

    Dim myComparer As CaseInsensitiveComparer

    Public Sub New()
        myComparer = CaseInsensitiveComparer.DefaultInvariant
    End Sub

    Public Sub New(ByVal myCulture As CultureInfo)
        myComparer = New CaseInsensitiveComparer(myCulture)
    End Sub

    Public Function Equals1(ByVal x As Object, ByVal y As Object) _
        As Boolean Implements IEqualityComparer.Equals

        Return myComparer.Compare(x, y) = 0
    End Function

    Public Function GetHashCode1(ByVal obj As Object) _
        As Integer Implements IEqualityComparer.GetHashCode
        Return obj.ToString().ToLower().GetHashCode()
    End Function
End Class

Public Class SamplesHashtable   

   Public Shared Sub Main()

      ' Create the dictionary.
      Dim mySL As New SortedList()
      mySL.Add("FIRST", "Hello")
      mySL.Add("SECOND", "World")
      mySL.Add("THIRD", "!")

      ' Create a hash table using the default comparer.
      Dim myHT1 As New Hashtable(mySL)

      ' Create a hash table using the specified IEqualityComparer that uses
      ' the CaseInsensitiveComparer.DefaultInvariant to determine equality.
      Dim myHT2 As New Hashtable(mySL, New myCultureComparer())

      ' Create a hash table using an IEqualityComparer that is based on
      ' the Turkish culture (tr-TR) where "I" is not the uppercase
      ' version of "i".
      Dim myCul As New CultureInfo("tr-TR")
      Dim myHT3 As New Hashtable(mySL, New myCultureComparer(myCul))

      ' Search for a key in each hash table.
      Console.WriteLine($"first is in myHT1: {myHT1.ContainsKey("first")}")
      Console.WriteLine($"first is in myHT2: {myHT2.ContainsKey("first")}")
      Console.WriteLine($"first is in myHT3: {myHT3.ContainsKey("first")}")

   End Sub

End Class


'This code produces the following output.
'Results vary depending on the system's culture settings.
'
'first is in myHT1: False
'first is in myHT2: True
'first is in myHT3: False

Opmerkingen

De initiële capaciteit wordt ingesteld op het aantal elementen in de bronwoordenlijst. De capaciteit wordt automatisch verhoogd op basis van de belastingfactor.

De belastingfactor is de maximale verhouding van elementen tot buckets. Een kleinere belastingfactor betekent sneller zoeken naar de kosten van een verhoogd geheugenverbruik.

Wanneer de werkelijke belastingfactor de opgegeven belastingfactor bereikt, wordt het aantal buckets automatisch verhoogd tot het kleinste priemnummer dat groter is dan twee keer het huidige aantal buckets.

De hashcodeprovider dispenseert hash-codes voor sleutels in het Hashtable object. De standaard-hashcodeprovider is de implementatie van de sleutel.Object.GetHashCode

De vergelijkingsfunctie bepaalt of twee sleutels gelijk zijn. Elke sleutel in een Hashtable moet uniek zijn. De standaard comparer is de implementatie van de sleutel.Object.Equals

De elementen van het nieuwe Hashtable worden gesorteerd in dezelfde volgorde waarin de enumerator het IDictionary object doorloopt.

Deze constructor is een O(n) bewerking, waarbij n het aantal elementen in de d parameter is.

Zie ook

Van toepassing op

Hashtable(Int32, IEqualityComparer)

Initialiseert een nieuwe, lege instantie van de Hashtable klasse met behulp van de opgegeven initiële capaciteit en IEqualityCompareren de standaardbelastingsfactor.

public:
 Hashtable(int capacity, System::Collections::IEqualityComparer ^ equalityComparer);
public Hashtable(int capacity, System.Collections.IEqualityComparer equalityComparer);
new System.Collections.Hashtable : int * System.Collections.IEqualityComparer -> System.Collections.Hashtable
Public Sub New (capacity As Integer, equalityComparer As IEqualityComparer)

Parameters

capacity
Int32

Het geschatte aantal elementen dat het Hashtable object in eerste instantie kan bevatten.

equalityComparer
IEqualityComparer

Het IEqualityComparer object dat de hashcodeprovider en de vergelijkingsfunctie definieert die moet worden gebruikt met de Hashtable.

– of –

null om de standaard-hashcodeprovider en de standaardvergelijker te gebruiken. De standaard-hashcodeprovider is de implementatie van GetHashCode() elke sleutel en de standaardvergelijker is de implementatie van Equals(Object)elke sleutel.

Uitzonderingen

capacity is kleiner dan nul.

Voorbeelden

In het volgende codevoorbeeld worden hashtabellen gemaakt met behulp van verschillende Hashtable constructors en worden de verschillen in het gedrag van de hash-tabellen gedemonstreerd, zelfs als elke tabel dezelfde elementen bevat.

using System;
using System.Collections;
using System.Globalization;

class myCultureComparer : IEqualityComparer
{
    public CaseInsensitiveComparer myComparer;

    public myCultureComparer()
    {
        myComparer = CaseInsensitiveComparer.DefaultInvariant;
    }

    public myCultureComparer(CultureInfo myCulture)
    {
        myComparer = new CaseInsensitiveComparer(myCulture);
    }

    public new bool Equals(object x, object y)
    {
        if (myComparer.Compare(x, y) == 0)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    public int GetHashCode(object obj)
    {
        // Compare the hash code for the lowercase versions of the strings.
        return obj.ToString().ToLower().GetHashCode();
    }
}

public class SamplesHashtable
{

    public static void Main()
    {

        // Create a hash table using the default comparer.
        Hashtable myHT1 = new Hashtable(3);
        myHT1.Add("FIRST", "Hello");
        myHT1.Add("SECOND", "World");
        myHT1.Add("THIRD", "!");

        // Create a hash table using the specified IEqualityComparer that uses
        // the CaseInsensitiveComparer.DefaultInvariant to determine equality.
        Hashtable myHT2 = new Hashtable(3, new myCultureComparer());
        myHT2.Add("FIRST", "Hello");
        myHT2.Add("SECOND", "World");
        myHT2.Add("THIRD", "!");

        // Create a hash table using an IEqualityComparer that is based on
        // the Turkish culture (tr-TR) where "I" is not the uppercase
        // version of "i".
        CultureInfo myCul = new CultureInfo("tr-TR");
        Hashtable myHT3 = new Hashtable(3, new myCultureComparer(myCul));
        myHT3.Add("FIRST", "Hello");
        myHT3.Add("SECOND", "World");
        myHT3.Add("THIRD", "!");

        // Search for a key in each hash table.
        Console.WriteLine("first is in myHT1: {0}", myHT1.ContainsKey("first"));
        Console.WriteLine("first is in myHT2: {0}", myHT2.ContainsKey("first"));
        Console.WriteLine("first is in myHT3: {0}", myHT3.ContainsKey("first"));
    }
}


/*
This code produces the following output.
Results vary depending on the system's culture settings.

first is in myHT1: False
first is in myHT2: True
first is in myHT3: False

*/
Imports System.Collections
Imports System.Globalization

Public Class myCultureComparer
    Implements IEqualityComparer

    Dim myComparer As CaseInsensitiveComparer

    Public Sub New()
        myComparer = CaseInsensitiveComparer.DefaultInvariant
    End Sub

    Public Sub New(ByVal myCulture As CultureInfo)
        myComparer = New CaseInsensitiveComparer(myCulture)
    End Sub

    Public Function Equals1(ByVal x As Object, ByVal y As Object) _
        As Boolean Implements IEqualityComparer.Equals

        If (myComparer.Compare(x, y) = 0) Then
            Return True
        Else
            Return False
        End If
    End Function

    Public Function GetHashCode1(ByVal obj As Object) _
        As Integer Implements IEqualityComparer.GetHashCode
        Return obj.ToString().ToLower().GetHashCode()
    End Function
End Class

Public Class SamplesHashtable   

   Public Shared Sub Main()

      ' Create a hash table using the default comparer.
      Dim myHT1 As New Hashtable(3)
      myHT1.Add("FIRST", "Hello")
      myHT1.Add("SECOND", "World")
      myHT1.Add("THIRD", "!")

      ' Create a hash table using the specified IEqualityComparer that uses
      ' the CaseInsensitiveComparer.DefaultInvariant to determine equality.
      Dim myHT2 As New Hashtable(3, New myCultureComparer())
      myHT2.Add("FIRST", "Hello")
      myHT2.Add("SECOND", "World")
      myHT2.Add("THIRD", "!")

      ' Create a hash table using an IEqualityComparer that is based on
      ' the Turkish culture (tr-TR) where "I" is not the uppercase
      ' version of "i".
      Dim myCul As New CultureInfo("tr-TR")
      Dim myHT3 As New Hashtable(3, New myCultureComparer(myCul))
      myHT3.Add("FIRST", "Hello")
      myHT3.Add("SECOND", "World")
      myHT3.Add("THIRD", "!")

      ' Search for a key in each hash table.
      Console.WriteLine("first is in myHT1: {0}", myHT1.ContainsKey("first"))
      Console.WriteLine("first is in myHT2: {0}", myHT2.ContainsKey("first"))
      Console.WriteLine("first is in myHT3: {0}", myHT3.ContainsKey("first"))

   End Sub

End Class


'This code produces the following output.
'Results vary depending on the system's culture settings.
'
'first is in myHT1: False
'first is in myHT2: True
'first is in myHT3: False

Opmerkingen

Als u de initiële capaciteit opgeeft, hoeft u niet meer een aantal formaatbewerkingen uit te voeren terwijl u elementen aan het Hashtable object toevoegt. De capaciteit wordt automatisch verhoogd op basis van de belastingfactor.

De belastingfactor is de maximale verhouding van elementen tot buckets. Een kleinere belastingfactor betekent sneller zoeken naar de kosten van een verhoogd geheugenverbruik.

Wanneer de werkelijke belastingfactor de opgegeven belastingfactor bereikt, wordt het aantal buckets automatisch verhoogd tot het kleinste priemnummer dat groter is dan twee keer het huidige aantal buckets.

Het IEqualityComparer object bevat zowel de hashcodeprovider als de vergelijkingsfunctie. Als een IEqualityComparer object in de Hashtable constructor wordt gebruikt, zijn de objecten die als sleutels in de Hashtable constructor worden gebruikt, niet vereist om de Object.GetHashCode en Object.Equals methoden te overschrijven.

De hashcodeprovider dispenseert hash-codes voor sleutels in de Hashtable. De standaard-hashcodeprovider is de implementatie van de sleutel.Object.GetHashCode

De vergelijkingsfunctie bepaalt of twee sleutels gelijk zijn. Elke sleutel in een Hashtable moet uniek zijn. De standaard comparer is de implementatie van de sleutel.Object.Equals

De IEqualityComparer functie maakt scenario's mogelijk, zoals het uitvoeren van zoekopdrachten met hoofdlettergevoelige tekenreeksen.

Deze constructor is een O(n) bewerking, waarbij n de capacity parameter zich bevindt.

Zie ook

Van toepassing op