2010-10-12 8 views

Odpowiedz

6

Przede wszystkim Hashtable są teraz stara. Zamiast tego użyj Dictionary(Of TKey, TValue). Jeśli chodzi o Twoje pytanie, z Visual Studio 2010 można użyć nowego collection initializer składnię:

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

Skoro jesteś na .NET 2.0, nie można użyć tej składni (można i należy nadal używać rodzajowe Dictionary), a więc najlepiej jest przy użyciu metody, aby ją ukryć:

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

Niestety, to nie wydaje się, aby pracować w .NET 2.0 – chris

+0

@chris - i zaktualizowane pytanie to, że ograniczenie. Jeśli potrzebujesz konkretnej wersji frameworka, podaj tę informację w przyszłości. Zaktualizuję też odpowiedź, ale teraz będzie podobna do Jareda. –

4

Najprostszym sposobem osiągnięcia tego celu jest czynnikiem kod się do funkcji

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

Czy możesz dodać tekst o tym, dlaczego to działa? – nikaltipar

+2

proszę o wyjaśnienie – Muhammed