Trabalhando com Hashtable em C#

0

Hoje, vamos ver, como hashtables trabalham em C #. Hashtables não são nada além de que coleções de pares chave-valor.

Vamos ver em detalhes neste artigo, então vamos começar.

Introdução

Hashtable é um conjunto de pares de valores-chave, que são organizadas no hash de suas respectivas chaves.

Quando você adiciona um elemento, ele é adicionado à tabela hash e seu código de hash correspondente é gerado automaticamente. Aqui, estamos usando as chaves para acessar esses hashcodes.Hashtable otimiza a pesquisa com a ajuda das chaves.

Utilização

Podemos utilizar o hash da seguinte maneira:

// Sintax básica
    Hashtable at=new Hashtable();  

//adicionar uma chave
    at.Add("1","Valor");  

 

1 é a chave com os seu respectivo valor.
Agora, você tem que usar um loop para exibir os elementos, caso queira listá-los.
Para recuperar os elementos através da tabela hash, iremos utilizar usar um dicionário de entrada ou comumente chamado DictionaryEntry.

    foreach(DictionaryEntry e in ht)   
    {  
        Console.WriteLine("{0}, {1}", e.Key, e.Value);  
    }  

 

Veja alguns exemplos:

//checando uma chave
ht.ContainsKey(1);  

//checando um valor específico
//lembrando de utilizar cast para o tipo de objeto
int value = (int)ht["One"];  

 

Propriedades de Hashtable

Chaves: Obtém um ICollection que contém as chaves no Hashtable.
Valores: Obtém um ICollection que contém os valores na tabela de hash.

Casting em Hashtable

Podemos usar o “as” operador para tentar converter um objeto para um tipo de referência específico. Ele retorna verdadeiro ou falso.
Para armazenar as chaves em uma lista de matriz, você pode usar a propriedade chaves de Hashtable. Por exemplo:

    ArrayList al = new ArrayList(ht.Keys)  
        // recuperando elementos do array
    foreach(int key in al) r {  
        Console.WriteLine(Key);  
    }  

 

Vantagem de utilizar Hashtable

Hashtable permite que o tempo de execução para a pesquisa, recuperação e definção permaneça quase constante, mesmo para os grandes conjuntos.
Nos grandes conjuntos de dados, uma tabela de hash possui capacidade de localizar o produto rapidamente.
Não há necessidade de percorrer todos os dados conjuntos para encontrar os itens.

Por exemplo, podemos criar uma instância do Hash e acrescentar quatro elementos nele.

Posteriormente, mostramos todos os elementos na tabela de hash e as chaves dadas à lista de matriz para conter todas as chaves de Hashtable e, finalmente, de imprimi-lo.

    using System;  
    using System.Collections;  
    namespace hasthtab  
    {  
        class Program   
        {  
            static void Main(string[] args) {  
                Hashtable ht = new Hashtable();  
                ht.Add("1", "Jhow");  
                ht.Add("2", "Codigosimples");  
                ht.Add("3", "Maria");  
                ht.Add("4", "Joaquim");  
                ICollection key = ht.Keys;  
                Console.WriteLine("Recuperando elementos: ");  
                Console.WriteLine();  
                foreach(var k in key) {  
                    Console.WriteLine(k + ":" + ht[k]);  
                }  
                ArrayList al = new ArrayList(key);  
                Console.WriteLine("Recuperando todas as chaves no array");  
                Console.WriteLine();  
                foreach(var n in al) {  
                    Console.WriteLine(n);  
                }  
                Console.ReadKey();  
            }  
        }  
    }  

 

Por hoje é só pessoal! Um grande abraço a todos!

Compartilhe.

Sobre o autor

Criador do blog Código Simples e com mais 9 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist. Atuando em funções analista, desenvolvedor, arquiteto, líder técnico e gestor de equipes. Mais informações em : http://jhonathansoares.com