Czy możliwe jest utworzenie wartości zmiennej hashtable "pre-populated"?Tworzenie hashtable z wartościami w VB.NET
Oznacza to, że coś takiego:
dim myHash as new Hashtable() = {"key1", "value1", "key2", "value2" }
Czy możliwe jest utworzenie wartości zmiennej hashtable "pre-populated"?Tworzenie hashtable z wartościami w VB.NET
Oznacza to, że coś takiego:
dim myHash as new Hashtable() = {"key1", "value1", "key2", "value2" }
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()
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()
Dim myHash As New Hashtable() From {
{"key1", "value1"}, {"key2", "value2"}
}
Czy możesz dodać tekst o tym, dlaczego to działa? – nikaltipar
proszę o wyjaśnienie – Muhammed
Niestety, to nie wydaje się, aby pracować w .NET 2.0 – chris
@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. –