Hashtable Construtores

Definição

Inicializa uma nova instância da Hashtable classe.

Sobrecargas

Name Description
Hashtable()

Inicializa uma nova instância vazia da Hashtable classe usando a capacidade inicial predefinida, fator de carga, fornecedor de código de hash e comparador.

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

Inicializa uma nova instância vazia da Hashtable classe usando a capacidade inicial especificada, fator de carga, fornecedor de código hash e comparador.

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

Inicializa uma nova instância da Hashtable classe copiando os elementos do dicionário especificado para o novo Hashtable objeto. O novo Hashtable objeto tem uma capacidade inicial igual ao número de elementos copiados e utiliza o fator de carga especificado, o fornecedor de código hash e o comparador.

Hashtable(Int32, Single, IEqualityComparer)

Inicializa uma nova instância vazia da Hashtable classe usando a capacidade inicial, o fator de carga e IEqualityComparer o objeto especificados.

Hashtable(Int32, IHashCodeProvider, IComparer)
Obsoleto.
Obsoleto.

Inicializa uma nova instância vazia da Hashtable classe usando a capacidade inicial especificada, o fornecedor de código hash, o comparador e o fator de carga padrão.

Hashtable(IDictionary, Single, IEqualityComparer)

Inicializa uma nova instância da Hashtable classe copiando os elementos do dicionário especificado para o novo Hashtable objeto. O novo Hashtable objeto tem uma capacidade inicial igual ao número de elementos copiados e utiliza o fator de carga e IEqualityComparer o objeto especificados.

Hashtable(IDictionary, IHashCodeProvider, IComparer)
Obsoleto.
Obsoleto.

Inicializa uma nova instância da Hashtable classe copiando os elementos do dicionário especificado para o novo Hashtable objeto. O novo Hashtable objeto tem uma capacidade inicial igual ao número de elementos copiados e utiliza o fator de carga padrão, bem como o fornecedor e comparador de código hash especificados. Esta API está obsoleta. Para uma alternativa, veja Hashtable(IDictionary, IEqualityComparer).

Hashtable(Int32, Single)

Inicializa uma nova instância vazia da Hashtable classe usando a capacidade inicial e o fator de carga especificados, bem como o fornecedor e comparador padrão de código hash.

Hashtable(SerializationInfo, StreamingContext)
Obsoleto.

Inicializa uma nova instância vazia da Hashtable classe que é serializável usando os objetos e SerializationInfo especificadosStreamingContext.

Hashtable(IHashCodeProvider, IComparer)
Obsoleto.
Obsoleto.
Obsoleto.

Inicializa uma nova instância vazia da Hashtable classe usando a capacidade inicial e o fator de carga predefinidos, bem como o fornecedor e comparador de código hash especificados.

Hashtable(IDictionary, Single)

Inicializa uma nova instância da Hashtable classe copiando os elementos do dicionário especificado para o novo Hashtable objeto. O novo Hashtable objeto tem uma capacidade inicial igual ao número de elementos copiados, e utiliza o fator de carga especificado, bem como o fornecedor e comparador padrão do código de hash.

Hashtable(IDictionary, IEqualityComparer)

Inicializa uma nova instância da Hashtable classe copiando os elementos do dicionário especificado para um novo Hashtable objeto. O novo Hashtable objeto tem uma capacidade inicial igual ao número de elementos copiados e utiliza o fator de carga padrão e o objeto especificado IEqualityComparer .

Hashtable(Int32)

Inicializa uma nova instância vazia da Hashtable classe usando a capacidade inicial especificada, e o fator de carga predefinido, fornecedor de código hash e comparador.

Hashtable(IEqualityComparer)

Inicializa uma nova instância vazia da Hashtable classe usando a capacidade inicial e o fator de carga predefinidos, bem como o objeto especificado IEqualityComparer .

Hashtable(IDictionary)

Inicializa uma nova instância da Hashtable classe copiando os elementos do dicionário especificado para o novo Hashtable objeto. O novo Hashtable objeto tem uma capacidade inicial igual ao número de elementos copiados e utiliza o fator de carga predefinido, o fornecedor de código hash e o comparador.

Hashtable(Int32, IEqualityComparer)

Inicializa uma nova instância vazia da Hashtable classe usando a capacidade inicial especificada e IEqualityComparer, e o fator de carga padrão.

Hashtable()

Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs

Inicializa uma nova instância vazia da Hashtable classe usando a capacidade inicial predefinida, fator de carga, fornecedor de código de hash e comparador.

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

Exemplos

O exemplo de código seguinte cria tabelas hash usando diferentes Hashtable construtores e demonstra as diferenças no comportamento das tabelas hash, mesmo que cada uma contenha os mesmos elementos.

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

Observações

A capacidade de uma tabela de hash é usada para calcular o número ótimo de buckets de tabela de hash com base no fator de carga. A capacidade é aumentada automaticamente conforme necessário.

O fator de carga é a razão máxima de elementos para baldes. Um fator de carga menor significa uma pesquisa mais rápida, ao custo de um maior consumo de memória.

Quando o fator de carga real atinge o fator de carga especificado, o número de baldes é automaticamente aumentado para o menor número primo, maior do que o dobro do número atual de baldes.

O fornecedor de código hash dispensa códigos hash para chaves no Hashtable objeto. O fornecedor de código hash padrão é a implementação da chave de Object.GetHashCode.

O comparador determina se duas chaves são iguais. Cada chave de um Hashtable deve ser única. O comparador padrão é a implementação da chave de Object.Equals.

Este construtor é uma O(1) operação.

Ver também

Aplica-se a

Hashtable(Int32, Single, IHashCodeProvider, IComparer)

Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs

Atenção

This constructor has been deprecated. Use Hashtable(int, float, IEqualityComparer) instead.

Atenção

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

Inicializa uma nova instância vazia da Hashtable classe usando a capacidade inicial especificada, fator de carga, fornecedor de código hash e comparador.

public:
 Hashtable(int capacity, float loadFactor, System::Collections::IHashCodeProvider ^ hcp, System::Collections::IComparer ^ comparer);
[System.Obsolete("This constructor has been deprecated. Use Hashtable(int, float, IEqualityComparer) instead.")]
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);
[System.Obsolete("Please use Hashtable(int, float, IEqualityComparer) instead.")]
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("This constructor has been deprecated. Use Hashtable(int, float, IEqualityComparer) instead.")>]
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
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)

Parâmetros

capacity
Int32

O número aproximado de elementos que o Hashtable objeto pode inicialmente conter.

loadFactor
Single

Um número no intervalo de 0,1 a 1,0 que é multiplicado pelo valor padrão que proporciona o melhor desempenho. O resultado é a razão máxima de elementos para baldes.

hcp
IHashCodeProvider

O IHashCodeProvider objeto que fornece os códigos de hash para todas as chaves do Hashtable.

-ou-

null para usar o fornecedor de código de hash predefinido, que é a implementação de cada chave de GetHashCode().

comparer
IComparer

O IComparer objeto a usar para determinar se duas chaves são iguais.

-ou-

null para usar o comparador padrão, que é a implementação de cada chave de Equals(Object).

Atributos

Exceções

capacity é inferior a zero.

-ou-

loadFactor é inferior a 0,1.

-ou-

loadFactor é maior que 1.0.

Observações

Especificar a capacidade inicial elimina a necessidade de realizar várias operações de redimensionamento enquanto se adicionam elementos ao Hashtable objeto. A capacidade é aumentada automaticamente conforme necessário com base no fator de carga.

O fator de carga é a razão máxima de elementos para baldes. Um fator de carga menor significa uma pesquisa mais rápida, ao custo de um maior consumo de memória. Um fator de carga de 1.0 é o melhor equilíbrio entre velocidade e tamanho.

Quando o fator de carga real atinge o fator de carga especificado, o número de baldes é automaticamente aumentado para o menor número primo, maior do que o dobro do número atual de baldes.

O fornecedor de código hash dispensa códigos hash para chaves no Hashtable. O fornecedor de código hash padrão é a implementação da chave de Object.GetHashCode.

O comparador determina se duas chaves são iguais. Cada chave de um Hashtable deve ser única. O comparador padrão é a implementação da chave de Object.Equals.

O fornecedor de código hash personalizado e o comparador personalizado permitem cenários como fazer consultas com strings insensíveis a maiúsculas minúsculas.

Este construtor é uma O(n) operação, onde n é o capacity parâmetro.

Ver também

Aplica-se a

Hashtable(IDictionary, Single, IHashCodeProvider, IComparer)

Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs

Atenção

This constructor has been deprecated. Use Hashtable(IDictionary, float, IEqualityComparer) instead.

Atenção

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

Inicializa uma nova instância da Hashtable classe copiando os elementos do dicionário especificado para o novo Hashtable objeto. O novo Hashtable objeto tem uma capacidade inicial igual ao número de elementos copiados e utiliza o fator de carga especificado, o fornecedor de código hash e o comparador.

public:
 Hashtable(System::Collections::IDictionary ^ d, float loadFactor, System::Collections::IHashCodeProvider ^ hcp, System::Collections::IComparer ^ comparer);
[System.Obsolete("This constructor has been deprecated. Use Hashtable(IDictionary, float, IEqualityComparer) instead.")]
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);
[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);
public Hashtable(System.Collections.IDictionary d, float loadFactor, System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer);
[<System.Obsolete("This constructor has been deprecated. Use Hashtable(IDictionary, float, IEqualityComparer) instead.")>]
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
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)

Parâmetros

d
IDictionary

O IDictionary objeto a copiar para um novo Hashtable objeto.

loadFactor
Single

Um número no intervalo de 0,1 a 1,0 que é multiplicado pelo valor padrão que proporciona o melhor desempenho. O resultado é a razão máxima de elementos para baldes.

hcp
IHashCodeProvider

O IHashCodeProvider objeto que fornece os códigos de hash para todas as chaves do Hashtable.

-ou-

null para usar o fornecedor de código de hash predefinido, que é a implementação de cada chave de GetHashCode().

comparer
IComparer

O IComparer objeto a usar para determinar se duas chaves são iguais.

-ou-

null para usar o comparador padrão, que é a implementação de cada chave de Equals(Object).

Atributos

Exceções

loadFactor é inferior a 0,1.

-ou-

loadFactor é maior que 1.0.

Observações

A capacidade inicial é definida para o número de elementos no dicionário fonte. A capacidade é aumentada automaticamente conforme necessário com base no fator de carga.

O fator de carga é a razão máxima de elementos para baldes. Um fator de carga menor significa uma pesquisa mais rápida, ao custo de um maior consumo de memória. Um fator de carga de 1.0 é o melhor equilíbrio entre velocidade e tamanho.

Quando o fator de carga real atinge o fator de carga especificado, o número de baldes é automaticamente aumentado para o menor número primo, maior do que o dobro do número atual de baldes.

O fornecedor de código hash dispensa códigos hash para chaves no Hashtable objeto. O fornecedor de código hash padrão é a implementação da chave de Object.GetHashCode.

O comparador determina se duas chaves são iguais. Cada chave de um Hashtable deve ser única. O comparador padrão é a implementação da chave de Object.Equals.

O fornecedor de código hash personalizado e o comparador personalizado permitem cenários como fazer consultas com strings insensíveis a maiúsculas minúsculas.

Os elementos do novo Hashtable são ordenados na mesma ordem em que o enumerador itera pelo IDictionary objeto.

Este construtor é uma O(n) operação, onde n é o número de elementos no d parâmetro.

Aplica-se a

Hashtable(Int32, Single, IEqualityComparer)

Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs

Inicializa uma nova instância vazia da Hashtable classe usando a capacidade inicial, o fator de carga e IEqualityComparer o objeto especificados.

public:
 Hashtable(int capacity, float loadFactor, System::Collections::IEqualityComparer ^ equalityComparer);
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)

Parâmetros

capacity
Int32

O número aproximado de elementos que o Hashtable objeto pode inicialmente conter.

loadFactor
Single

Um número no intervalo de 0,1 a 1,0 que é multiplicado pelo valor padrão que proporciona o melhor desempenho. O resultado é a razão máxima de elementos para baldes.

equalityComparer
IEqualityComparer

O IEqualityComparer objeto que define o fornecedor de código hash e o comparador a usar com o Hashtable.

-ou-

null para usar o fornecedor de código hash predefinido e o comparador predefinido. O fornecedor de código hash padrão é a implementação de GetHashCode() cada chave e o comparador padrão é a implementação de Equals(Object).

Exceções

capacity é inferior a zero.

-ou-

loadFactor é inferior a 0,1.

-ou-

loadFactor é maior que 1.0.

Exemplos

O exemplo de código seguinte cria tabelas hash usando diferentes Hashtable construtores e demonstra as diferenças no comportamento das tabelas hash, mesmo que cada uma contenha os mesmos elementos.

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

Observações

Especificar a capacidade inicial elimina a necessidade de realizar várias operações de redimensionamento enquanto se adicionam elementos ao Hashtable objeto. A capacidade é aumentada automaticamente conforme necessário com base no fator de carga.

O fator de carga é a razão máxima de elementos para baldes. Um fator de carga menor significa uma pesquisa mais rápida, ao custo de um maior consumo de memória. Um fator de carga de 1.0 é o melhor equilíbrio entre velocidade e tamanho.

Quando o fator de carga real atinge o fator de carga especificado, o número de baldes é automaticamente aumentado para o menor número primo, maior do que o dobro do número atual de baldes.

O IEqualityComparer objeto inclui tanto o fornecedor de código hash como o comparador. Se an IEqualityComparer for usado no Hashtable construtor, os objetos usados como chaves no Hashtable não são obrigados a sobrepor os Object.GetHashCode métodos e Object.Equals .

O fornecedor de código hash dispensa códigos hash para chaves no Hashtable. O fornecedor de código hash padrão é a implementação da chave de Object.GetHashCode.

O comparador determina se duas chaves são iguais. Cada chave de um Hashtable deve ser única. O comparador padrão é a implementação da chave de Object.Equals.

Permite IEqualityComparer cenários como fazer consultas com cadeias insensíveis a maiúsculas.

Este construtor é uma O(n) operação, onde n é o capacity parâmetro.

Ver também

Aplica-se a

Hashtable(Int32, IHashCodeProvider, IComparer)

Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs

Atenção

This constructor has been deprecated. Use Hashtable(int, IEqualityComparer) instead.

Atenção

Please use Hashtable(int, IEqualityComparer) instead.

Inicializa uma nova instância vazia da Hashtable classe usando a capacidade inicial especificada, o fornecedor de código hash, o comparador e o fator de carga padrão.

public:
 Hashtable(int capacity, System::Collections::IHashCodeProvider ^ hcp, System::Collections::IComparer ^ comparer);
[System.Obsolete("This constructor has been deprecated. Use Hashtable(int, IEqualityComparer) instead.")]
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);
[System.Obsolete("Please use Hashtable(int, IEqualityComparer) instead.")]
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("This constructor has been deprecated. Use Hashtable(int, IEqualityComparer) instead.")>]
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
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)

Parâmetros

capacity
Int32

O número aproximado de elementos que o Hashtable objeto pode inicialmente conter.

hcp
IHashCodeProvider

O IHashCodeProvider objeto que fornece os códigos de hash para todas as chaves do Hashtable.

-ou-

null para usar o fornecedor de código de hash predefinido, que é a implementação de cada chave de GetHashCode().

comparer
IComparer

O IComparer objeto a usar para determinar se duas chaves são iguais.

-ou-

null para usar o comparador padrão, que é a implementação de cada chave de Equals(Object).

Atributos

Exceções

capacity é inferior a zero.

Observações

Especificar a capacidade inicial elimina a necessidade de realizar várias operações de redimensionamento enquanto se adicionam elementos ao Hashtable objeto. A capacidade é aumentada automaticamente conforme necessário com base no fator de carga.

O fator de carga é a razão máxima de elementos para baldes. Um fator de carga menor significa uma pesquisa mais rápida, ao custo de um maior consumo de memória.

Quando o fator de carga real atinge o fator de carga especificado, o número de baldes é automaticamente aumentado para o menor número primo, maior do que o dobro do número atual de baldes.

O fornecedor de código hash dispensa códigos hash para chaves no Hashtable. O fornecedor de código hash padrão é a implementação da chave de Object.GetHashCode.

O comparador determina se duas chaves são iguais. Cada chave de um Hashtable deve ser única. O comparador padrão é a implementação da chave de Object.Equals.

O fornecedor de código hash personalizado e o comparador personalizado permitem cenários como fazer consultas com strings insensíveis a maiúsculas minúsculas.

Este construtor é uma O(n) operação, onde n é o capacity parâmetro.

Ver também

Aplica-se a

Hashtable(IDictionary, Single, IEqualityComparer)

Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs

Inicializa uma nova instância da Hashtable classe copiando os elementos do dicionário especificado para o novo Hashtable objeto. O novo Hashtable objeto tem uma capacidade inicial igual ao número de elementos copiados e utiliza o fator de carga e IEqualityComparer o objeto especificados.

public:
 Hashtable(System::Collections::IDictionary ^ d, float loadFactor, System::Collections::IEqualityComparer ^ equalityComparer);
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)

Parâmetros

d
IDictionary

O IDictionary objeto a copiar para um novo Hashtable objeto.

loadFactor
Single

Um número no intervalo de 0,1 a 1,0 que é multiplicado pelo valor padrão que proporciona o melhor desempenho. O resultado é a razão máxima de elementos para baldes.

equalityComparer
IEqualityComparer

O IEqualityComparer objeto que define o fornecedor de código hash e o comparador a usar com o Hashtable.

-ou-

null para usar o fornecedor de código hash predefinido e o comparador predefinido. O fornecedor de código hash padrão é a implementação de GetHashCode() cada chave e o comparador padrão é a implementação de Equals(Object).

Exceções

loadFactor é inferior a 0,1.

-ou-

loadFactor é maior que 1.0.

Exemplos

O exemplo de código seguinte cria tabelas hash usando diferentes Hashtable construtores e demonstra as diferenças no comportamento das tabelas hash, mesmo que cada uma contenha os mesmos elementos.

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

Observações

A capacidade inicial é definida para o número de elementos no dicionário fonte. A capacidade é aumentada automaticamente conforme necessário com base no fator de carga.

O fator de carga é a razão máxima de elementos para baldes. Um fator de carga menor significa uma pesquisa mais rápida, ao custo de um maior consumo de memória. Um fator de carga de 1.0 é o melhor equilíbrio entre velocidade e tamanho.

Quando o fator de carga real atinge o fator de carga especificado, o número de baldes é automaticamente aumentado para o menor número primo, maior do que o dobro do número atual de baldes.

O IEqualityComparer objeto inclui tanto o fornecedor de código hash como o comparador. Se an IEqualityComparer for usado no Hashtable construtor, os objetos usados como chaves no Hashtable objeto não são obrigados a sobrepor os Object.GetHashCode métodos e.Object.Equals

O fornecedor de código hash dispensa códigos hash para chaves no Hashtable. O fornecedor de código hash padrão é a implementação da chave de Object.GetHashCode.

O comparador determina se duas chaves são iguais. Cada chave de um Hashtable deve ser única. O comparador padrão é a implementação da chave de Object.Equals.

Permite IEqualityComparer cenários como fazer consultas com cadeias insensíveis a maiúsculas.

Os elementos do novo Hashtable são ordenados na mesma ordem em que o enumerador itera pelo IDictionary objeto.

Este construtor é uma O(n) operação, onde n é o número de elementos no d parâmetro.

Ver também

Aplica-se a

Hashtable(IDictionary, IHashCodeProvider, IComparer)

Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs

Atenção

This constructor has been deprecated. Use Hashtable(IDictionary, IEqualityComparer) instead.

Atenção

Please use Hashtable(IDictionary, IEqualityComparer) instead.

Inicializa uma nova instância da Hashtable classe copiando os elementos do dicionário especificado para o novo Hashtable objeto. O novo Hashtable objeto tem uma capacidade inicial igual ao número de elementos copiados e utiliza o fator de carga padrão, bem como o fornecedor e comparador de código hash especificados. Esta API está obsoleta. Para uma alternativa, veja Hashtable(IDictionary, IEqualityComparer).

public:
 Hashtable(System::Collections::IDictionary ^ d, System::Collections::IHashCodeProvider ^ hcp, System::Collections::IComparer ^ comparer);
[System.Obsolete("This constructor has been deprecated. Use Hashtable(IDictionary, IEqualityComparer) instead.")]
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);
[System.Obsolete("Please use Hashtable(IDictionary, IEqualityComparer) instead.")]
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("This constructor has been deprecated. Use Hashtable(IDictionary, IEqualityComparer) instead.")>]
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
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)

Parâmetros

d
IDictionary

O IDictionary objeto a copiar para um novo Hashtable objeto.

hcp
IHashCodeProvider

O IHashCodeProvider objeto que fornece os códigos de hash para todas as chaves do Hashtable.

-ou-

null para usar o fornecedor de código de hash predefinido, que é a implementação de cada chave de GetHashCode().

comparer
IComparer

O IComparer objeto a usar para determinar se duas chaves são iguais.

-ou-

null para usar o comparador padrão, que é a implementação de cada chave de Equals(Object).

Atributos

Exceções

Observações

A capacidade inicial é definida para o número de elementos no dicionário fonte. A capacidade é aumentada automaticamente conforme necessário com base no fator de carga.

O fator de carga é a razão máxima de elementos para baldes. Um fator de carga menor significa uma pesquisa mais rápida, ao custo de um maior consumo de memória.

Quando o fator de carga real atinge o fator de carga especificado, o número de baldes é automaticamente aumentado para o menor número primo, maior do que o dobro do número atual de baldes.

O fornecedor de código hash dispensa códigos hash para chaves no Hashtable objeto. O fornecedor de código hash padrão é a implementação da chave de Object.GetHashCode.

O comparador determina se duas chaves são iguais. Cada chave de um Hashtable deve ser única. O comparador padrão é a implementação da chave de Object.Equals.

O fornecedor de código hash personalizado e o comparador personalizado permitem cenários como fazer consultas com strings insensíveis a maiúsculas minúsculas.

Os elementos do novo Hashtable são ordenados na mesma ordem em que o enumerador itera pelo IDictionary objeto.

Este construtor é uma O(n) operação, onde n é o número de elementos no d parâmetro.

Ver também

Aplica-se a

Hashtable(Int32, Single)

Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs

Inicializa uma nova instância vazia da Hashtable classe usando a capacidade inicial e o fator de carga especificados, bem como o fornecedor e comparador padrão de código hash.

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)

Parâmetros

capacity
Int32

O número aproximado de elementos que o Hashtable objeto pode inicialmente conter.

loadFactor
Single

Um número no intervalo de 0,1 a 1,0 que é multiplicado pelo valor padrão que proporciona o melhor desempenho. O resultado é a razão máxima de elementos para baldes.

Exceções

capacity é inferior a zero.

-ou-

loadFactor é inferior a 0,1.

-ou-

loadFactor é maior que 1.0.

capacity está a causar um transbordamento.

Exemplos

O exemplo de código seguinte cria tabelas hash usando diferentes Hashtable construtores e demonstra as diferenças no comportamento das tabelas hash, mesmo que cada uma contenha os mesmos elementos.

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

Observações

Especificar a capacidade inicial elimina a necessidade de realizar várias operações de redimensionamento enquanto se adicionam elementos ao Hashtable objeto. A capacidade é aumentada automaticamente conforme necessário com base no fator de carga.

O fator de carga é a razão máxima de elementos para baldes. Um fator de carga menor significa uma pesquisa mais rápida, ao custo de um maior consumo de memória. Um fator de carga de 1.0 é o melhor equilíbrio entre velocidade e tamanho.

Quando o fator de carga real atinge o fator de carga especificado, o número de baldes é automaticamente aumentado para o menor número primo, maior do que o dobro do número atual de baldes.

O fornecedor de código hash dispensa códigos hash para chaves no Hashtable. O fornecedor de código hash padrão é a implementação da chave de Object.GetHashCode.

O comparador determina se duas chaves são iguais. Cada chave de um Hashtable deve ser única. O comparador padrão é a implementação da chave de Object.Equals.

Este construtor é uma O(n) operação, onde n é o capacity parâmetro.

Ver também

Aplica-se a

Hashtable(SerializationInfo, StreamingContext)

Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs

Atenção

This API supports obsolete formatter-based serialization. It should not be called or extended by application code.

Inicializa uma nova instância vazia da Hashtable classe que é serializável usando os objetos e SerializationInfo especificadosStreamingContext.

protected:
 Hashtable(System::Runtime::Serialization::SerializationInfo ^ info, System::Runtime::Serialization::StreamingContext context);
[System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
protected Hashtable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
protected Hashtable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
[<System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
new System.Collections.Hashtable : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> System.Collections.Hashtable
new System.Collections.Hashtable : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> System.Collections.Hashtable
Protected Sub New (info As SerializationInfo, context As StreamingContext)

Parâmetros

info
SerializationInfo

Um SerializationInfo objeto contendo a informação necessária para serializar o Hashtable objeto.

context
StreamingContext

Um StreamingContext objeto contendo a origem e o destino do fluxo serializado associado ao Hashtable.

Atributos

Exceções

info é null.

Observações

A capacidade de uma tabela de hash é usada para calcular o número ótimo de buckets de tabela de hash com base no fator de carga. A capacidade é aumentada automaticamente conforme necessário.

O fator de carga é a razão máxima de elementos para baldes. Um fator de carga menor significa uma pesquisa mais rápida, ao custo de um maior consumo de memória.

Quando o fator de carga real atinge o fator de carga especificado, o número de baldes é automaticamente aumentado para o menor número primo, maior do que o dobro do número atual de baldes.

O fornecedor de código hash dispensa códigos hash para chaves no Hashtable objeto. O fornecedor de código hash padrão é a implementação da chave de Object.GetHashCode.

O comparador determina se duas chaves são iguais. Cada chave de um Hashtable deve ser única. O comparador padrão é a implementação da chave de Object.Equals.

Este construtor é uma O(n) operação, onde n é Count.

Como serializar e desserializar um enumerador para um Hashtable pode fazer com que os elementos fiquem reordenados, não é possível continuar a enumeração sem chamar o Reset método.

Ver também

Aplica-se a

Hashtable(IHashCodeProvider, IComparer)

Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs

Atenção

This constructor has been deprecated. Use Hashtable(IEqualityComparer) instead.

Atenção

Please use Hashtable(IEqualityComparer) instead.

Atenção

This constructor has been deprecated. Use Hashtable(IEqualityComparer).

Inicializa uma nova instância vazia da Hashtable classe usando a capacidade inicial e o fator de carga predefinidos, bem como o fornecedor e comparador de código hash especificados.

public:
 Hashtable(System::Collections::IHashCodeProvider ^ hcp, System::Collections::IComparer ^ comparer);
[System.Obsolete("This constructor has been deprecated. Use Hashtable(IEqualityComparer) instead.")]
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);
[System.Obsolete("This constructor has been deprecated. Use Hashtable(IEqualityComparer).")]
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);
public Hashtable(System.Collections.IHashCodeProvider hcp, System.Collections.IComparer comparer);
[<System.Obsolete("This constructor has been deprecated. Use Hashtable(IEqualityComparer) instead.")>]
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
[<System.Obsolete("This constructor has been deprecated. Use Hashtable(IEqualityComparer).")>]
new System.Collections.Hashtable : System.Collections.IHashCodeProvider * System.Collections.IComparer -> System.Collections.Hashtable
new System.Collections.Hashtable : System.Collections.IHashCodeProvider * System.Collections.IComparer -> System.Collections.Hashtable
Public Sub New (hcp As IHashCodeProvider, comparer As IComparer)

Parâmetros

hcp
IHashCodeProvider

O IHashCodeProvider objeto que fornece os códigos de hash para todas as chaves do Hashtable objeto.

-ou-

null para usar o fornecedor de código de hash predefinido, que é a implementação de cada chave de GetHashCode().

comparer
IComparer

O IComparer objeto a usar para determinar se duas chaves são iguais.

-ou-

null para usar o comparador padrão, que é a implementação de cada chave de Equals(Object).

Atributos

Observações

A capacidade de uma tabela de hash é usada para calcular o número ótimo de buckets de tabela de hash com base no fator de carga. A capacidade é aumentada automaticamente conforme necessário.

O fator de carga é a razão máxima de elementos para baldes. Um fator de carga menor significa uma pesquisa mais rápida, ao custo de um maior consumo de memória.

Quando o fator de carga real atinge o fator de carga especificado, o número de baldes é automaticamente aumentado para o menor número primo, maior do que o dobro do número atual de baldes.

O fornecedor de código hash dispensa códigos hash para chaves no Hashtable objeto. O fornecedor de código hash padrão é a implementação da chave de Object.GetHashCode.

O comparador determina se duas chaves são iguais. Cada chave de um Hashtable deve ser única. O comparador padrão é a implementação da chave de Object.Equals.

O fornecedor de código hash personalizado e o comparador personalizado permitem cenários como fazer consultas com strings insensíveis a maiúsculas minúsculas.

Este construtor é uma O(1) operação.

Ver também

Aplica-se a

Hashtable(IDictionary, Single)

Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs

Inicializa uma nova instância da Hashtable classe copiando os elementos do dicionário especificado para o novo Hashtable objeto. O novo Hashtable objeto tem uma capacidade inicial igual ao número de elementos copiados, e utiliza o fator de carga especificado, bem como o fornecedor e comparador padrão do código de hash.

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)

Parâmetros

d
IDictionary

O IDictionary objeto a copiar para um novo Hashtable objeto.

loadFactor
Single

Um número no intervalo de 0,1 a 1,0 que é multiplicado pelo valor padrão que proporciona o melhor desempenho. O resultado é a razão máxima de elementos para baldes.

Exceções

loadFactor é inferior a 0,1.

-ou-

loadFactor é maior que 1.0.

Exemplos

O exemplo de código seguinte cria tabelas hash usando diferentes Hashtable construtores e demonstra as diferenças no comportamento das tabelas hash, mesmo que cada uma contenha os mesmos elementos.

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

Observações

A capacidade inicial é definida para o número de elementos no dicionário fonte. A capacidade é aumentada automaticamente conforme necessário com base no fator de carga.

O fator de carga é a razão máxima de elementos para baldes. Um fator de carga menor significa uma pesquisa mais rápida, ao custo de um maior consumo de memória. Um fator de carga de 1.0 é o melhor equilíbrio entre velocidade e tamanho.

Quando o fator de carga real atinge o fator de carga especificado, o número de baldes é automaticamente aumentado para o menor número primo, maior do que o dobro do número atual de baldes.

O fornecedor de código hash dispensa códigos hash para chaves no Hashtable objeto. O fornecedor de código hash padrão é a implementação da chave de Object.GetHashCode.

O comparador determina se duas chaves são iguais. Cada chave de um Hashtable deve ser única. O comparador padrão é a implementação da chave de Object.Equals.

Os elementos do novo Hashtable são ordenados na mesma ordem em que o enumerador itera pelo IDictionary objeto.

Este construtor é uma O(n) operação, onde n é o número de elementos no d parâmetro.

Ver também

Aplica-se a

Hashtable(IDictionary, IEqualityComparer)

Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs

Inicializa uma nova instância da Hashtable classe copiando os elementos do dicionário especificado para um novo Hashtable objeto. O novo Hashtable objeto tem uma capacidade inicial igual ao número de elementos copiados e utiliza o fator de carga padrão e o objeto especificado IEqualityComparer .

public:
 Hashtable(System::Collections::IDictionary ^ d, System::Collections::IEqualityComparer ^ equalityComparer);
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)

Parâmetros

d
IDictionary

O IDictionary objeto a copiar para um novo Hashtable objeto.

equalityComparer
IEqualityComparer

O IEqualityComparer objeto que define o fornecedor de código hash e o comparador a usar com o Hashtable.

-ou-

null para usar o fornecedor de código hash predefinido e o comparador predefinido. O fornecedor de código hash padrão é a implementação de GetHashCode() cada chave e o comparador padrão é a implementação de Equals(Object).

Exceções

Exemplos

O exemplo de código seguinte cria tabelas hash usando diferentes Hashtable construtores e demonstra as diferenças no comportamento das tabelas hash, mesmo que cada uma contenha os mesmos elementos.

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

Observações

A capacidade inicial é definida para o número de elementos no dicionário fonte. A capacidade é aumentada automaticamente conforme necessário com base no fator de carga.

O fator de carga é a razão máxima de elementos para baldes. Um fator de carga menor significa uma pesquisa mais rápida, ao custo de um maior consumo de memória.

Quando o fator de carga real atinge o fator de carga especificado, o número de baldes é automaticamente aumentado para o menor número primo, maior do que o dobro do número atual de baldes.

O IEqualityComparer objeto inclui tanto o fornecedor de código hash como o comparador. Se an IEqualityComparer for usado no Hashtable construtor, os objetos usados como chaves no Hashtable objeto não são obrigados a sobrepor os Object.GetHashCode métodos e.Object.Equals

O fornecedor de código hash dispensa códigos hash para chaves no Hashtable. O fornecedor de código hash padrão é a implementação da chave de Object.GetHashCode.

O comparador determina se duas chaves são iguais. Cada chave de um Hashtable deve ser única. O comparador padrão é a implementação da chave de Object.Equals.

Permite IEqualityComparer cenários como fazer consultas com cadeias insensíveis a maiúsculas.

Os elementos do novo Hashtable são ordenados na mesma ordem em que o enumerador itera pelo IDictionary objeto.

Este construtor é uma O(n) operação, onde n é o número de elementos no d parâmetro.

Ver também

Aplica-se a

Hashtable(Int32)

Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs

Inicializa uma nova instância vazia da Hashtable classe usando a capacidade inicial especificada, e o fator de carga predefinido, fornecedor de código hash e comparador.

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

Parâmetros

capacity
Int32

O número aproximado de elementos que o Hashtable objeto pode inicialmente conter.

Exceções

capacity é inferior a zero.

Exemplos

O exemplo de código seguinte cria tabelas hash usando diferentes Hashtable construtores e demonstra as diferenças no comportamento das tabelas hash, mesmo que cada uma contenha os mesmos elementos.

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

Observações

Especificar a capacidade inicial elimina a necessidade de realizar várias operações de redimensionamento enquanto se adicionam elementos ao Hashtable objeto. A capacidade é aumentada automaticamente conforme necessário com base no fator de carga.

O fator de carga é a razão máxima de elementos para baldes. Um fator de carga menor significa uma pesquisa mais rápida, ao custo de um maior consumo de memória.

Quando o fator de carga real atinge o fator de carga especificado, o número de baldes é automaticamente aumentado para o menor número primo, maior do que o dobro do número atual de baldes.

O fornecedor de código hash dispensa códigos hash para chaves no Hashtable. O fornecedor de código hash padrão é a implementação da chave de Object.GetHashCode.

O comparador determina se duas chaves são iguais. Cada chave de um Hashtable deve ser única. O comparador padrão é a implementação da chave de Object.Equals.

Este construtor é uma O(n) operação, onde n é capacity.

Ver também

Aplica-se a

Hashtable(IEqualityComparer)

Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs

Inicializa uma nova instância vazia da Hashtable classe usando a capacidade inicial e o fator de carga predefinidos, bem como o objeto especificado IEqualityComparer .

public:
 Hashtable(System::Collections::IEqualityComparer ^ equalityComparer);
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)

Parâmetros

equalityComparer
IEqualityComparer

O IEqualityComparer objeto que define o fornecedor de código hash e o comparador a usar com o Hashtable objeto.

-ou-

null para usar o fornecedor de código hash predefinido e o comparador predefinido. O fornecedor de código hash padrão é a implementação de GetHashCode() cada chave e o comparador padrão é a implementação de Equals(Object).

Exemplos

O exemplo de código seguinte cria tabelas hash usando diferentes Hashtable construtores e demonstra as diferenças no comportamento das tabelas hash, mesmo que cada uma contenha os mesmos elementos.

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

Observações

A capacidade de uma tabela de hash é usada para calcular o número ótimo de buckets de tabela de hash com base no fator de carga. A capacidade é aumentada automaticamente conforme necessário.

O fator de carga é a razão máxima de elementos para baldes. Um fator de carga menor significa uma pesquisa mais rápida, ao custo de um maior consumo de memória.

Quando o fator de carga real atinge o fator de carga especificado, o número de baldes é automaticamente aumentado para o menor número primo, maior do que o dobro do número atual de baldes.

O IEqualityComparer objeto inclui tanto o fornecedor de código hash como o comparador. Se an IEqualityComparer for usado no Hashtable construtor, os objetos usados como chaves no Hashtable objeto não são obrigados a sobrepor os Object.GetHashCode métodos e.Object.Equals

O fornecedor de código hash dispensa códigos hash para chaves no Hashtable. O fornecedor de código hash padrão é a implementação da chave de Object.GetHashCode.

O comparador determina se duas chaves são iguais. Cada chave de um Hashtable deve ser única. O comparador padrão é a implementação da chave de Object.Equals.

Permite IEqualityComparer cenários como fazer consultas com cadeias insensíveis a maiúsculas.

Este construtor é uma O(1) operação.

Ver também

Aplica-se a

Hashtable(IDictionary)

Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs

Inicializa uma nova instância da Hashtable classe copiando os elementos do dicionário especificado para o novo Hashtable objeto. O novo Hashtable objeto tem uma capacidade inicial igual ao número de elementos copiados e utiliza o fator de carga predefinido, o fornecedor de código hash e o comparador.

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)

Parâmetros

d
IDictionary

O IDictionary objeto a copiar para um novo Hashtable objeto.

Exceções

Exemplos

O exemplo de código seguinte cria tabelas hash usando diferentes Hashtable construtores e demonstra as diferenças no comportamento das tabelas hash, mesmo que cada uma contenha os mesmos elementos.

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

Observações

A capacidade inicial é definida para o número de elementos no dicionário fonte. A capacidade é aumentada automaticamente conforme necessário com base no fator de carga.

O fator de carga é a razão máxima de elementos para baldes. Um fator de carga menor significa uma pesquisa mais rápida, ao custo de um maior consumo de memória.

Quando o fator de carga real atinge o fator de carga especificado, o número de baldes é automaticamente aumentado para o menor número primo, maior do que o dobro do número atual de baldes.

O fornecedor de código hash dispensa códigos hash para chaves no Hashtable objeto. O fornecedor de código hash padrão é a implementação da chave de Object.GetHashCode.

O comparador determina se duas chaves são iguais. Cada chave de um Hashtable deve ser única. O comparador padrão é a implementação da chave de Object.Equals.

Os elementos do novo Hashtable são ordenados na mesma ordem em que o enumerador itera pelo IDictionary objeto.

Este construtor é uma O(n) operação, onde n é o número de elementos no d parâmetro.

Ver também

Aplica-se a

Hashtable(Int32, IEqualityComparer)

Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs
Origem:
Hashtable.cs

Inicializa uma nova instância vazia da Hashtable classe usando a capacidade inicial especificada e IEqualityComparer, e o fator de carga padrão.

public:
 Hashtable(int capacity, System::Collections::IEqualityComparer ^ equalityComparer);
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)

Parâmetros

capacity
Int32

O número aproximado de elementos que o Hashtable objeto pode inicialmente conter.

equalityComparer
IEqualityComparer

O IEqualityComparer objeto que define o fornecedor de código hash e o comparador a usar com o Hashtable.

-ou-

null para usar o fornecedor de código hash predefinido e o comparador predefinido. O fornecedor de código hash padrão é a implementação de GetHashCode() cada chave e o comparador padrão é a implementação de Equals(Object).

Exceções

capacity é inferior a zero.

Exemplos

O exemplo de código seguinte cria tabelas hash usando diferentes Hashtable construtores e demonstra as diferenças no comportamento das tabelas hash, mesmo que cada uma contenha os mesmos elementos.

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

Observações

Especificar a capacidade inicial elimina a necessidade de realizar várias operações de redimensionamento enquanto se adicionam elementos ao Hashtable objeto. A capacidade é aumentada automaticamente conforme necessário com base no fator de carga.

O fator de carga é a razão máxima de elementos para baldes. Um fator de carga menor significa uma pesquisa mais rápida, ao custo de um maior consumo de memória.

Quando o fator de carga real atinge o fator de carga especificado, o número de baldes é automaticamente aumentado para o menor número primo, maior do que o dobro do número atual de baldes.

O IEqualityComparer objeto inclui tanto o fornecedor de código hash como o comparador. Se an IEqualityComparer for usado no Hashtable construtor, os objetos usados como chaves no Hashtable não são obrigados a sobrepor os Object.GetHashCode métodos e Object.Equals .

O fornecedor de código hash dispensa códigos hash para chaves no Hashtable. O fornecedor de código hash padrão é a implementação da chave de Object.GetHashCode.

O comparador determina se duas chaves são iguais. Cada chave de um Hashtable deve ser única. O comparador padrão é a implementação da chave de Object.Equals.

Permite IEqualityComparer cenários como fazer consultas com cadeias insensíveis a maiúsculas.

Este construtor é uma O(n) operação, onde n é o capacity parâmetro.

Ver também

Aplica-se a