Jak pracovat s kolekce HashTable v jazyce Visual Basic.ČISTÁ nebo Visual Basic 2005

Překlady článku Překlady článku
ID článku: 307933 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek obsahuje informace o kolekce HashTable. Protože zatřiďování eliminuje potřebu nákladné vyhledávání dat načíst data, můžete použít algoritmus hash účinně načítat data. K vyhledání dat hash používá hodnotu klíče, sám.

Knihovny třídy Base nabízejí HashTable Třída, která je definována v System.Collections obor názvů tak, že není potřeba kód hash tabulky.

Kroky k vytvoření vzorku

Kolekce HashTable ukládá (Klíč hodnota) dvojice a používá Klíč hash a získat umístění úložiště. Na Klíč je neměnná a nelze mít duplicitní položky v HashTable. Tento příklad používá několik instancí jednoduchého Osoba třídy pro uložení HashTable. Poslední název slouží jako Klíč.
  1. Otevřete aplikaci Microsoft Visual Studio.NET nebo Microsoft Visual Studio 2005 a vytvořit projekt aplikace systému Windows v jazyku Visual Basic.NET nebo Visual Basic 2005. Ve výchozím nastavení je do projektu přidány Formulář1.
  2. V aplikaci Solution Explorer klepněte pravým tlačítkem myši na název projektu, přejděte na Přidata klepněte na tlačítko Přidání třídy Přidat Třída modul. Ve výchozím nastavení je do projektu přidány Class1.
  3. V Přidat novou položku Dialogové okno, klepněte na tlačítko Otevřít.

    Poznámka: V aplikaci Visual Studio 2005 klepněte na tlačítko Přidat místo Otevřít.
  4. Nahradit libovolný kód v Class1 modul s následujícím kódem:
    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
    						
    Na Osoba Třída má jeden konstruktor, který zabírá Jméno a Příjmení parametry a přiřadí tyto parametry místní proměnné. Na ToString lokální změny funkce ToString od Objekt Třída vrátit Fname a LName vytvoří spojením společně.
  5. V Form1.vb přidejte následující Dovoz prohlášení k horní části modulu kódu:
    Imports System.Collections
    					
  6. Vytvořit formulář úroveň Hashtable objekt a deklarovat tři proměnné typu Osoba. Třída formulář1, přidejte následující kód:
    Dim MyTable As New Hashtable()
    
    'For simplicity, create three Person objects to add to the HashTable collection.
    
    Dim Person1, Person2, Person3 As Person  
    					
  7. V následujících krocích, použít Přidat Metoda Hashtable objekt, který chcete přidat tři Osoba objekty do Hashtable v try-catch blok. Na try-catch blok úlovky výjimku a zobrazí zprávu v případě existence duplicitního klíče.
    1. Místo Tlačítko formulář1 ovládat a měnit Text Vlastnost Přidání prvků.
    2. Poklepejte na tlačítko otevřete okno jeho kód a vložte následující kód v Button1_Click událost:
      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. Na Hashtable objekt obsahuje indexovací člen. V následujících krocích, index se Klíč hodnota uložená v umístění hodnoty hash přístup.
    1. Přidat Tlačítko do formuláře Form1 řídit a změnit Text Vlastnost Získat zboží.
    2. Poklepejte na tlačítko a vložte následující kód v Button2_Click událost:
      '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. V následujících krocích, použít Odebrat Metoda odstranit jednu položku z kolekce HashTable:
    1. Přidat Tlačítko do formuláře Form1 řídit a změnit Text Vlastnost Odstranit položku.
    2. Poklepejte na tlačítko a vložte následující kód v Button3_Click událost:
      '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. V následujících krocích výčet položek, které jsou uloženy v kolekce HashTable.
    1. Přidat Tlačítko do formuláře Form1 řídit a změnit Text Vlastnost Výčet.
    2. Poklepejte na tlačítko a vložte následující kód v Button4_Click událost:
      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 
      							
      Tento kód deklaruje proměnnou typu IDictionaryEnumerator a volá GetEnumerator Metoda kolekce HashTable. S Čítač výčtu Vrátí, kód výčet prostřednictvím položek v kolekci a používá Klíče Metoda HashTable provedení výčtu klíčů.
  11. V následujících krocích, použít Vymazat Metoda zrušte HashTable.
    1. Přidat Tlačítko do formuláře Form1 řídit a změnit Text Vlastnost Vymazat.
    2. Poklepejte na tlačítko a vložte následující kód v Button5_Click událost:
      MyTable.Clear()
      MessageBox.Show("HashTable is now empty")
      						
  12. Takto sestavit a spustit aplikaci:
    1. Klepněte na tlačítko Přidat položky. Poznámka, že tři Osoba objekty jsou přidány do kolekce HashTable.
    2. Klepněte na tlačítko Získat zboží. Všimněte si, že získává indexovacího položky kolekce HashTable. Tři nově přidané položky jsou zobrazeny.
    3. Klepněte na tlačítko Odstranit položku. Všimněte si, že položku na místě klíče "berge" se zrušuje.
    4. Klepněte na tlačítko Výčet. Všimněte si, že IDictionaryEnumerator Vytvoří výčet prostřednictvím kolekce HashTable položky.
    5. Klepněte na tlačítko Vymazat. Všimněte si, že všechny položky z kolekce HashTable budou vymazány.
POZNÁMKA:: Na společností, organizací, produktů, názvy domén, e-mailové adresy, loga, osoby, místa a události použité v ukázkách jsou smyšlené. Spojení se skutečnou společností, organizací, produktu, název domény, e-mailovou adresu, logo, osobě, místa nebo události je určen nebo událostmi.

Vlastnosti

ID článku: 307933 - Poslední aktualizace: 18. května 2011 - Revize: 5.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Klíčová slova: 
kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB307933 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:307933

Dejte nám zpětnou vazbu

 

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