Şu anda çevrimdışısınız; İnternet'in yeniden bağlanması bekleniyor

Visual Basic 2005 veya Visual Basic. NET'te HashTable koleksiyonu ile çalışma

ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.

Makalenin İngilizcesi aşağıdaki gibidir:307933
Özet
Bu makalede, HashTable koleksiyonu hakkında bilgi sağlar. Karma verileri almak için verilerin pahalı arama gereklerini olduğundan, karma verimli bir şekilde veri almak için kullanabilirsiniz. Karma, verileri bulmak için anahtarın değerini kullanır.

Temel sınıf kitaplıkları, böylece kendi denetim tablolarını kod için gerekli olmayan System.Collections ad alanında tanımlanan bir HashTable sınıf sunar.

back to the top

Örnek oluşturma adımları

Bir HashTable koleksiyonu (anahtar, değer) bir çift depolar ve karma depolama konumunu elde etmek için bu anahtarı kullanır. Bu anahtar sabit ve yinelenen girdileri HashTable bulunamaz. Bu örnek, birkaç basit bir kişi sınıfı örnekleri bir HashTable depolamak için kullanır. Son ad anahtarı olarak kullanılır.
  1. Microsoft Visual Studio .NET veya Visual Studio 2005'i açın ve Visual Basic 2005 veya Visual Basic. NET'te bir Windows uygulaması) projesi oluşturun. Form1, varsayılan olarak projeye eklenir.
  2. Solution Explorer'da (Çözüm Gezgini), proje adını sağ tıklatın, sonra da Ekle işaret ve bir sınıf modülü eklemek için Add Class</a1>'ı tıklatın. Class1, varsayılan olarak projeye eklenir.
  3. Yeni Öğe Ekle iletişim kutusunda ' ı tıklatın.

    Not Visual Studio 2005'te, Ekle, ' ı tıklatın.
  4. Class1 modülünde herhangi bir kodu aşağıdaki kodla değiştirin:
    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						
    ad ve Soyad parametreleri alır ve bu parametreler için yerel değişkenler atayan bir kurucu kişi sınıfı vardır. ToString işlevi, Fname ve Lname birlikte birleştirilmiş geri dönmek için nesne sınıfından ToString geçersiz kılar.
  5. Form1.vb içinde aşağıdaki ifadeyi alır kod modülü üstüne ekleyin:
    Imports System.Collections					
  6. Bir form düzeyi Hashtable nesnesi ve <a1>Tür</a1> kişi için üç değişkenleri bildir. Form1 sınıfa aşağıdaki kodu ekleyin:
    Dim MyTable As New Hashtable()'For simplicity, create three Person objects to add to the HashTable collection.Dim Person1, Person2, Person3 As Person  					
  7. Aşağıdaki adımlarda, bir try-catch bloğu içinde Hashtable üç kişi nesnesi eklemek için Hashtable nesnesi <a1>Ekle</a1> yöntemini kullanın. Try-catch bloğu özel durum yakalar ve yinelenen anahtarlar varsa, bir ileti görüntüler.
    1. Form1 bir Düğme denetimi yerleştirin ve metin özelliği Ekle öğeler için değiştirebilirsiniz.
    2. Code penceresini açmak için bu düğmeyi çift tıklatıp <a2>Button1_Click</a2> olay aşağıdaki kodu yapıştırın:
      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 nesnesi, bir dizin oluşturucu sağlar. Aşağıdaki adımlarda, hashed konumda depolanan değer erişmek için anahtar dizini.
    1. Form1'e bir Düğme denetimi ekleyin ve Get ıtemsText özelliğini değiştirin.
    2. Düğmeyi çift tıklatın ve Button2_Click olayda aşağıdaki kodu yapıştırın:
      '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. Aşağıdaki adımlarda, HashTable topluluğundan tek bir öğe kaldırmak için kaldırma yöntemi kullanın:
    1. Form1'e bir Düğme denetimi ekleyin ve Kaldır öğesi için metin özelliği değiştirin.
    2. Düğmeyi çift tıklatın ve Button3_Click olayda aşağıdaki kodu yapıştırın:
      '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. Aşağıdaki adımlarda, HashTable koleksiyonu içinde depolanan maddelerin numaralandırılamıyor.
    1. Form1'e bir Düğme denetimi ekleyin ve Numaralandırma için Text özelliğini değiştirin.
    2. Düğmeyi çift tıklatın ve Button4_Click olayda aşağıdaki kodu yapıştırın:
      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 							
      bu kod IDictionaryEnumerator türünde değişken bildirir ve HashTable koleksiyonu GetEnumerator yöntemini çaðýrýr. Döndürülen sayacı, kod koleksiyonu içindeki öğeler arasında numaralandırır ve topluluðu anahtarlarý Numaralandırılacak HashTable <a1>anahtarlar</a1> yöntemini kullanır.
  11. Aşağıdaki adımlarda, HashTable silmek için Clear yöntemini kullanın.
    1. Form1'e bir Düğme denetimi ekleyin ve metin özelliği Temizle değiştirin.
    2. Düğmeyi çift tıklatın ve Button5_Click olayda aşağıdaki kodu yapıştırın:
      MyTable.Clear()MessageBox.Show("HashTable is now empty")						
  12. Oluşturmak ve bu uygulamayı çalıştırmak için şu adımları izleyin:
    1. Öğeleri Ekle ' yi tıklatın. Üç kişi nesneleri HashTable derlemesine eklenen unutmayın.
    2. Öğeleri Al ' ı tıklatın. Dizinleyici HashTable koleksiyonu öğeleri aldığını unutmayın. Üç yeni görüntüleneceðini eklendi.
    3. Öğe Kaldır ' ı tıklatın. Anahtar "Berge" konumundaki maddenin silindiğini unutmayın.
    4. Numaralandır ' ı tıklatın. Not HashTable koleksiyonu içindeki öğeler arasında IDictionaryEnumerator numaralandırır.
    5. Temizle ' yi tıklatın. Tüm öğeleri HashTable koleksiyonu temizlenmiştir unutmayın.
Not: örnek şirketler, kuruluşlar, ürünler, etki alanı adları, e-posta adresleri, logolar, kişiler, yerler ve burada olaylar kurgusaldır. Amaçlanmaktadır veya olayla ilgisi herhangi gerçek şirket, kuruluş, ürün, etki alanı adı, e-posta adresi, logo, kişi, yer veya olayları ilişkisi yok.

back to the top
... catch deneyin.

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 307933 - Son İnceleme: 12/06/2006 23:18:59 - Düzeltme: 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 KbMttr
Geri bildirim