Αυτήν τη στιγμή είστε εκτός σύνδεσης, σε αναμονή για επανασύνδεση στο Internet

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

ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.

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

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

back to the top

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

Μια συλλογή 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 FunctionEnd 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 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 							
      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.

back to the top
try...catch

Προειδοποίηση: Αυτό το άρθρο έχει μεταφραστεί αυτόματα

Ιδιότητες

Αναγνωριστικό άρθρου: 307933 - Τελευταία αναθεώρηση: 12/20/2010 04:34:00 - Αναθεώρηση: 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
Σχόλια
/html>html> display: none; " src="https://c1.microsoft.com/c.gif?DI=4050&did=1&t=">1&t=">omerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write("