Como trabalhar com a coleção HashTable no Visual Basic .NET ou no Visual Basic 2005

Traduções deste artigo Traduções deste artigo
ID do artigo: 307933 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo fornece informações sobre a coleção de HashTable. Como hash elimina a necessidade de pesquisa caro de dados para recuperar os dados, você pode usar hash para recuperar dados de maneira eficiente. Hash usa o valor da chave próprio para localizar os dados.

As bibliotecas de classe de base oferecem uma classe HashTable , que é definida no namespace System.Collections , para que não é necessário para codificar suas próprias tabelas de hash.

Etapas para criar o exemplo

Uma coleção de HashTable armazena um par (chave, valor) e usa a chave de hash e obter o local de armazenamento. A chave é imutável e não pode ter entradas duplicadas na HashTable . Este exemplo usa várias instâncias de uma simples classe de pessoa para armazenar em uma HashTable . O último nome é usado como a chave .
  1. Abra o Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005 e crie um projeto Windows Application no Visual Basic .NET ou no Visual Basic 2005. Form1 é adicionado para o projeto por padrão.
  2. No Solution Explorer, clique com o botão direito do mouse o nome do projeto, aponte para Add e, em seguida, clique em Add Class para adicionar um módulo de classe . Class1 é adicionado para o projeto por padrão.
  3. Na caixa de diálogo Add New Item , clique em Abrir .

    Observação No Visual Studio 2005, clique em Adicionar em vez de Abrir .
  4. Substitua qualquer código no módulo Class1 com o código a seguir:
    Public Class Person
        Public Fname, Lname As String
    
        Sub New(ByVal FirstName As String, ByVal LastName As String)
            Fname = FirstName
            Lname = LastName
        End Sub
    
        Public Overrides Function ToString() As String
            Return Fname + " " + Lname
        End Function
    End Class
    						
    a classe pessoa possui um construtor que aceita os parâmetros FirstName e LastName e atribui esses parâmetros para as variáveis locais. A função ToString substitui ToString da classe de objeto para retornar Fname e Sobrenome concatenadas.
  5. Em Form1.vb, adicione a seguinte instrução Imports na parte superior do módulo de código:
    Imports System.Collections
    					
  6. Crie um objeto de tabela de hash de nível de formulário e declarar três variáveis do tipo de pessoa . Adicione o seguinte código à classe Form1:
    Dim MyTable As New Hashtable()
    
    'For simplicity, create three Person objects to add to the HashTable collection.
    
    Dim Person1, Person2, Person3 As Person  
    					
  7. Nas etapas a seguir, use o método Add do objeto Hashtable para adicionar três objetos Person para a tabela de hash em um bloco try-catch . O bloco try-catch captura a exceção e exibe uma mensagem se houver chaves duplicadas.
    1. Coloque um controle Button no Form1 e altere a propriedade Text para Adicionar elementos .
    2. Clique duas vezes o botão para abrir a janela código e cole o seguinte código no evento Button1_Click :
      Person1 = New Person("Karen", "Berge")
      Person2 = New Person("David", "Campbell")
      Person3 = New Person("Jim", "Kim")
      
      'The Add method takes Key as the first parameter and Value as the second parameter.
      
      Try
           MyTable.Add(Person1.Lname, Person1)
           MyTable.Add(Person2.Lname, Person2)
           MyTable.Add(Person3.Lname, Person3)
      Catch ae As ArgumentException
           MessageBox.Show("Duplicate Key")
      End Try
      						
  8. O objeto Hashtable fornece um indexador. Nas etapas a seguir, índice com a chave para acessar o valor que é armazenado no local de hash.
    1. Adicionar um controle de botão a Form1 e altere a propriedade Text para Obter itens .
    2. Clique duas vezes no botão e cole o seguinte código no evento Button2_Click :
      'Use the indexer of the Hashtable class to retrieve your objects. The indexer takes 
      'Key as a parameter and accesses it with the Hashed location.
              
      Try
           MessageBox.Show(MyTable(Person1.Lname).ToString)
           MessageBox.Show(MyTable(Person2.Lname).ToString)
           MessageBox.Show(MyTable(Person3.Lname).ToString)
      Catch ex As NullReferenceException
           MessageBox.Show("Key not in Hashtable")
      End Try
      						
  9. Nas etapas a seguir, use o método Remover para remover um único item da coleção HashTable:
    1. Adicionar um controle de botão a Form1 e altere a propriedade Text para Remover o item .
    2. Clique duas vezes no botão e cole o seguinte código no evento Button3_Click :
      'Use the Count property.
      If (MyTable.Count = 0) Then
           MessageBox.Show("There are no items in HashTable")
      Else
           MessageBox.Show("The count before removing an Item is" & " " & MyTable.Count)
           MessageBox.Show("Removing value stored at key value (Berge)")
           'Remove the object that is stored at the Key value Person1.Lname.
           MyTable.Remove(Person1.Lname)
      End If
      						
  10. Nas etapas a seguir, enumere os itens que são armazenados na coleção HashTable.
    1. Adicionar um controle de botão a Form1 e altere a propriedade Text para Enumerate .
    2. Clique duas vezes no botão e cole o seguinte código no evento Button4_Click :
      Dim Enumerator As IDictionaryEnumerator
      Enumerator = MyTable.GetEnumerator()
      
      If (MyTable.Count = 0) Then
           MessageBox.Show("The HashTable is empty")
      Else
           MessageBox.Show("Enumerating through the HashTable collection")
           While Enumerator.MoveNext()
                MessageBox.Show(Enumerator.Value.ToString())
           End While
      End If
      
      Dim MyKeys As ICollection
      Dim Key As Object
      
      If (MyTable.Count = 0) Then
           MessageBox.Show("The HashTable is empty")
      Else
           MessageBox.Show("Accessing keys property to return keys collection")
           MyKeys = MyTable.Keys()
      
           For Each Key In MyKeys
                MessageBox.Show(Key.ToString)
           Next
      End If 
      							
      esse código declara uma variável do tipo IDictionaryEnumerator e chama o método GetEnumerator da coleção HashTable. Com o enumerador retornado, o código enumera entre os itens na coleção e usa o método chaves de HashTable para enumerar as chaves.
  11. Nas etapas a seguir, use o método Clear para limpar a HashTable .
    1. Adicionar um controle de botão a Form1 e altere a propriedade Text para Limpar .
    2. Clique duas vezes no botão e cole o seguinte código no evento Button5_Click :
      MyTable.Clear()
      MessageBox.Show("HashTable is now empty")
      						
  12. Siga estas etapas para criar e executar o aplicativo:
    1. Clique em Adicionar itens . Observe que três objetos Person serão adicionados à coleção HashTable.
    2. clique em itens. Observe que o indexador obtém os itens na coleção HashTable. As três recém-adicionados os itens são exibidos.
    3. Clique em Remover Item . Observe que o item no local de chave "Brink" será excluído.
    4. Clique em enumerar . Observe que enumera IDictionaryEnumerator entre os itens na coleção HashTable.
    5. Clique em Limpar . Observe que todos os itens estão desmarcados da coleção HashTable.
Observação : os exemplos de empresas, organizações, produtos, nomes de domínio, endereços de email, logotipos, pessoas, lugares e acontecimentos aqui mencionados são fictícios. Nenhuma associação com real da empresa, organização, produto, nome de domínio, endereço de email, logotipo, pessoa, lugares ou eventos é intencional ou deve ser inferida.

Propriedades

ID do artigo: 307933 - Última revisão: quarta-feira, 6 de dezembro de 2006 - Revisão: 3.3
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Palavras-chave: 
kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB307933 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 307933

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com