Você está offline; aguardando reconexão

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

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
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.

back to the top

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 FunctionEnd 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 IDictionaryEnumeratorEnumerator = 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 WhileEnd IfDim MyKeys As ICollectionDim Key As ObjectIf (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)     NextEnd 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.

back to the top
Try... catch

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 307933 - Última Revisão: 12/06/2006 23:18:59 - Revisão: 3.3

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB307933 KbMtpt
Comentários
&t=">