VB.NET

2010-10-12 23 views
5

'daki değerlerle bir hashtable oluşturma Değerlerle birlikte "önceden doldurulmuş" bir karma oluşturmak mümkün mü? olduğuVB.NET

, gibi bir şey:

dim myHash as new Hashtable() = {"key1", "value1", "key2", "value2" } 

cevap

6

İlk içine kod faktör olduğunu, Hashtable şimdi eski. Bunun yerine bir Dictionary(Of TKey, TValue) kullanın. Sorunuza gelince, Visual Studio 2010 ile yeni collection initializer sözdizimi kullanabilirsiniz: .NET 2.0 konum yana

Dim myDict As New Dictionary(Of Integer, String) From {{1, "One"}, {2, "Two"}} 

, o sözdizimi kullanamazsınız (eğer hala jenerik Sözlük kullanmalıdır edebilirsiniz) ve bu yüzden en iyi bahis gizlemek için bir yöntem kullanıyor:

Function CreateDictionary() As Dictionary(Of Integer, String) 
    Dim d As New Dictionary(Of Integer, String) 
    d.Add(1, "One") 
    d.Add(2, "Two") 
    Return d 
End Function 

Dim myDict As Dictionary(Of Integer, String) = CreateDictionary() 
+0

Ne yazık ki, bu .net 2.0 – chris

+0

@chris çalışmak görünmüyor - o kısıtlamasını içerecek şekilde sorunuzu güncellendi. Çerçevenin belirli bir sürümüne ihtiyacınız varsa, lütfen bu bilgileri gelecekte dahil edin. Cevabımı da güncelleyeceğim, ama şimdi Jared'inkiyle aynı olacak. –

4

Bunu yapmanın en kolay yolu bir fonksiyonu tüm

Function CreateHashtable() As Hashtable 
    Dim table = new HashTable() 
    table.Add("key1", "value1") 
    table.Add("key2", "value2") 
    return table 
End Function 

Dim myHash As Hashtable = CreateHashtable() 
2
Dim myHash As New Hashtable() From { 
     {"key1", "value1"}, {"key2", "value2"} 
    } 
+2

Bunun neden işe yaradığına dair bir metin ekleyebilir misiniz? – nikaltipar

+2

açıklama lütfen – Muhammed