Close Menu
Código Simples .NETCódigo Simples .NET
    Facebook X (Twitter) Instagram
    Trending
    • Context engineering: quando o problema deixa de ser prompt e vira arquitetura
    • Clean Code (2ª edição): o que mudou e o que continua valendo
    • Sunk Cost em Arquitetura de Software: como evitar que meses de investimento virem uma armadilha
    • Guia Profissional de Prompting – Domando um ChatGPT Preguiçoso: Como Obter Respostas Completas, Profundas e Confiáveis
    • A Anatomia de um Prompt: Como Falar com a IA Como um Profissional de Tecnologia
    • Conheça os tipos de registros DNS: o guia completo sobre A, AAAA, NS, CNAME, MX, PTR, SOA, TXT, SRV, SPF e muito mais
    • Cache além do básico: por que LRU e TTL precisam andar juntos
    • Quando usar arquitetura modular — e quando não usar
    Facebook X (Twitter) Instagram
    Código Simples .NETCódigo Simples .NET
    Código Simples .NETCódigo Simples .NET
    Home»Asp.net»C#»Trabalhando com Hashtable em C#

    Trabalhando com Hashtable em C#

    Jhonathan SoaresBy Jhonathan Soares16 de agosto de 20162 Mins Read C#
    Share
    Facebook Twitter LinkedIn WhatsApp Copy Link

    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!

    Share. Facebook Twitter LinkedIn Telegram WhatsApp Copy Link
    Jhonathan Soares
    • Website
    • Facebook
    • X (Twitter)
    • LinkedIn

    Criador do blog Código Simples e com mais 15 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.

    Posts Relacionados

    O que é a Ecma e qual é sua relação com C#?

    C# Post do Leitor 29 de julho de 20247 Mins Read

    UUID vs ULID: comparação e exemplos em C#

    C# 19 de junho de 20245 Mins Read

    Entendendo o ObjectId no MongoDB

    C# NoSql 25 de maio de 20246 Mins Read
    Newsletter

    Digite seu endereço de e-mail para receber notificações de novas publicações por e-mail.

    Junte-se a 25mil outros assinantes
    Posts recentes
    • Context engineering: quando o problema deixa de ser prompt e vira arquitetura
    • Clean Code (2ª edição): o que mudou e o que continua valendo
    • Sunk Cost em Arquitetura de Software: como evitar que meses de investimento virem uma armadilha
    • Guia Profissional de Prompting – Domando um ChatGPT Preguiçoso: Como Obter Respostas Completas, Profundas e Confiáveis
    • A Anatomia de um Prompt: Como Falar com a IA Como um Profissional de Tecnologia
    Categorias
    • Arquitetura (31)
      • Microsserviços (3)
      • Testes (2)
    • Asp.net (120)
      • C# (89)
      • Mvc (13)
    • Banco de dados (93)
      • NoSql (60)
      • Sql (38)
    • Boas práticas (34)
      • Gestão & Produtividade (4)
      • Metodologias Ágeis (6)
    • Cursos (53)
    • Dicas (108)
    • Front-End (92)
    • IA (7)
    • Linux (6)
    • NodeJS (4)
    • Post do Leitor (9)
    • Python (5)
    • Seo (12)
    • Tecnologia (30)
      • ITIL (1)
      • Padrões de Projeto (4)
    • Testes (2)

    VEJA TAMBÉM

    Cursos
    12 de fevereiro de 20166 Mins Read

    1000 livros gratuitos sobre programação!

    Olha que dica bacana! A pagina só com livros sobre programação é mantida no GitHub…

    30 APIs Gratuitas para desenvolvedores

    Código Simples no Facebook
    Código Simples no Facebook
    • Popular
    • Recente

    1000 livros gratuitos sobre programação!

    12 de fevereiro de 2016

    Google lança versão “invisível” do reCAPTCHA!

    10 de março de 2017

    Mini curso de HTML5 oferecido pela Microsoft

    30 de janeiro de 2014

    O que significa ( !important ) na declaração do CSS ?

    5 de fevereiro de 2014

    Programa para supercompactar arquivos. KGB Archiver.

    6 de fevereiro de 2014

    Context engineering: quando o problema deixa de ser prompt e vira arquitetura

    16 de abril de 2026

    Clean Code (2ª edição): o que mudou e o que continua valendo

    12 de fevereiro de 2026

    Sunk Cost em Arquitetura de Software: como evitar que meses de investimento virem uma armadilha

    4 de fevereiro de 2026

    Guia Profissional de Prompting – Domando um ChatGPT Preguiçoso: Como Obter Respostas Completas, Profundas e Confiáveis

    30 de outubro de 2025

    A Anatomia de um Prompt: Como Falar com a IA Como um Profissional de Tecnologia

    30 de outubro de 2025
    Nosso Feed
    • RSS - Posts
    Fique por dentro

    Digite seu endereço de email para assinar este blog e receber notificações de novas publicações por email.

    Facebook X (Twitter) Instagram LinkedIn

    Type above and press Enter to search. Press Esc to cancel.

    Vá para versão mobile