Εργασία με τη συλλογή HashTable σε Visual Basic .NET ή Visual Basic 2005

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 307933 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Αυτό το άρθρο παρέχει πληροφορίες σχετικά με τη συλλογή HashTable. Επειδή κλειδώματος εξαλείφει την ανάγκη για δαπανηρή η αναζήτηση δεδομένων για την ανάκτηση δεδομένων, μπορείτε να χρησιμοποιήσετε κατακερματισμού για την αποτελεσματική ανάκτηση δεδομένων. Κλειδώματος χρησιμοποιεί την τιμή του κλειδιού μόνο για τον εντοπισμό των δεδομένων.

Τις βιβλιοθήκες κλάσης Base προσφέρουν έναHashTableη κλάση που έχει καθοριστεί στο στοSystem.Collectionsχώρος ονομάτων, έτσι ώστε δεν είναι απαραίτητο για τη δική σας πίνακες κατακερματισμού.

Βήματα για τη δημιουργία του δείγματος

Μια συλλογή HashTable αποθηκεύει ένα(Key, τιμή)ζεύγος και τις χρήσεις τηςΚλειδίο κατακερματισμός και αποκτήστε τη θέση αποθήκευσης. Για ναΚλειδίείναι immutable και δεν είναι δυνατό να έχουν διπλότυπες καταχωρήσεις στο στοHashTable. Αυτό το δείγμα χρησιμοποιεί πολλές εμφανίσεις ενός απλούΤο άτομοκλάση να αποθηκεύσετε σε έναHashTable. Το τελευταίο όνομα που χρησιμοποιείται ως τοΚλειδί.
  1. Ανοίξτε το Microsoft Visual Studio .NET ή Microsoft Visual Studio 2005 και δημιουργήστε ένα έργο εφαρμογής Windows στο Visual Basic .NET ή Visual Basic του 2005. Φόρμα1 προστίθεται στο έργο, από προεπιλογή.
  2. Στην Εξερεύνηση των λύσεων, κάντε δεξιό κλικ στο όνομα έργου, τοποθετήστε το δείκτηADD, και στη συνέχεια κάντε κλικ στο κουμπίΠροσθήκη κατηγορίαςΓια να προσθέσετε έναCLASSModule. Class1 προστίθεται στο έργο, από προεπιλογή.
  3. ΣτοΠροσθήκη νέου στοιχείουπαράθυρο διαλόγου, κάντε κλικ στο κουμπίOpen.

    ΣΗΜΕΙΩΣΗΣτο Visual Studio 2005, κάντε κλικ στο κουμπίADDαντί γιαOpen.
  4. Αντικατάσταση κώδικα στο στοClass1λειτουργική μονάδα με τον ακόλουθο κώδικα:
    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
    						
    Για ναΤο άτομοη κλάση έχει μια κατασκευή που λαμβάνει το"Όνομα"ANDLastnameπαράμετροι και αντιστοιχίζει αυτές τις παραμέτρους σε τοπικές μεταβλητές. Για ναToStringαντικαθιστά τη λειτουργίαToStringαπό τοObjectη κλάση για την επιστροφήFnameANDLNameσυνενωθούν μαζί.
  5. Στο Form1.vb, προσθέστε τα εξήςΕισαγωγέςπρόταση προς τα επάνω στη λειτουργική μονάδα κώδικα:
    Imports System.Collections
    					
  6. Δημιουργία ενός επιπέδου φόρμαςHashtableαντικείμενο και δηλώνετε μεταβλητές τρεις τύπουΤο άτομο. Προσθέστε τον ακόλουθο κώδικα στην κλάση Φόρμα1:
    Dim MyTable As New Hashtable()
    
    'For simplicity, create three Person objects to add to the HashTable collection.
    
    Dim Person1, Person2, Person3 As Person  
    					
  7. Στα παρακάτω βήματα, χρησιμοποιήστε τοADDη μέθοδος τουHashtableΓια να προσθέσετε τρεις αντικειμένουΤο άτομοαντικείμενα για τηνHashtableσε μιαtry-catchμπλοκ. Για ναtry-catchμπλοκ συλλαμβάνει την εξαίρεση και εμφανίζει ένα μήνυμα, αν υπάρχουν διπλότυπα κλειδιά.
    1. Τοποθετήστε έναΚουμπίΈλεγχος σε Φόρμα1 και αλλάξτε τοTextη ιδιότητα ναΠροσθήκη στοιχείων.
    2. Κάντε διπλό κλικ στο κουμπί για να ανοίξετε το παράθυρο κώδικα και επικολλήστε τον παρακάτω κώδικα με το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. Για ναHashtableτο αντικείμενο παρέχει ένα δεικτοδότη. Στα παρακάτω βήματα, δημιουργήστε ευρετήριο με τοΚλειδίΓια να αποκτήσετε πρόσβαση στην τιμή που είναι αποθηκευμένη στη θέση διαγραμμισμένο.
    1. Προσθήκη ενόςΚουμπίστοιχείο ελέγχου θα Φόρμα1 και αλλάξτε τοTextη ιδιότητα ναΛήψη στοιχείων.
    2. Κάντε διπλό κλικ στο κουμπί και επικολλήστε τον παρακάτω κώδικα με το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. Στα παρακάτω βήματα, χρησιμοποιήστε τοκατάργησημέθοδος για την κατάργηση ενός στοιχείου από τη συλλογή HashTable:
    1. Προσθήκη ενόςΚουμπίστοιχείο ελέγχου θα Φόρμα1 και αλλάξτε τοTextη ιδιότητα ναΚατάργηση στοιχείου.
    2. Κάντε διπλό κλικ στο κουμπί και επικολλήστε τον παρακάτω κώδικα με το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. In the following steps, enumerate the items that are stored in the HashTable collection.
    1. Προσθήκη ενόςButtoncontrol to Form1, and change theTextη ιδιότητα ναEnumerate.
    2. Double-click the button, and paste the following code in theButton4_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 
      							
      This code declares a variable of typeIDictionaryEnumeratorand calls theGetEnumeratormethod of the HashTable collection. Με τοEnumeratorreturned, the code enumerates through the items in the collection and uses theKeysη μέθοδος τουHashTableto enumerate through the keys.
  11. In the following steps, use theΑπαλοιφήmethod to clear theHashTable.
    1. Προσθήκη ενόςButtoncontrol to Form1, and change theTextη ιδιότητα ναΑπαλοιφή.
    2. Double-click the button, and paste the following code in theButton5_ClickΣυμβάν:
      MyTable.Clear()
      MessageBox.Show("HashTable is now empty")
      						
  12. Follow these steps to build and run the application:
    1. Κάντε κλικAdd Items. Note that threePersonobjects are added to the HashTable collection.
    2. Κάντε κλικGet Items. Note that the indexer obtains the items in the HashTable collection. The three newly added items are displayed.
    3. Κάντε κλικRemove Item. Note that the item at the "Berge" key location is deleted.
    4. Κάντε κλικEnumerate. Έχετε υπόψη ότιIDictionaryEnumeratorenumerates through the items in the HashTable collection.
    5. Κάντε κλικΑπαλοιφή. Note that all the items are cleared from the HashTable collection.
ΣΗΜΕΙΩΣΗ: The example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious. No association with any real company, organization, product, domain name, email address, logo, person, places, or events is intended or should be inferred.

Ιδιότητες

Αναγν. άρθρου: 307933 - Τελευταία αναθεώρηση: Δευτέρα, 20 Δεκεμβρίου 2010 - Αναθεώρηση: 2.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Λέξεις-κλειδιά: 
kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB307933 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:307933

Αποστολή σχολίων

 

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