È possibile creare una tabella hash "pre-compilata" con valori?Creazione di una tabella hash con valori in VB.NET
Cioè, qualcosa di simile:
dim myHash as new Hashtable() = {"key1", "value1", "key2", "value2" }
È possibile creare una tabella hash "pre-compilata" con valori?Creazione di una tabella hash con valori in VB.NET
Cioè, qualcosa di simile:
dim myHash as new Hashtable() = {"key1", "value1", "key2", "value2" }
Prima di tutto, Hashtable di sono vecchio ormai. Utilizzare invece un Dictionary(Of TKey, TValue)
. Per quanto riguarda la tua domanda, con Visual Studio 2010 è possibile utilizzare la nuova collection initializer sintassi:
Dim myDict As New Dictionary(Of Integer, String) From {{1, "One"}, {2, "Two"}}
Dal momento che sei in .NET 2.0, non è possibile utilizzare la sintassi che (si può e deve continuare a utilizzare un dizionario generica), e quindi la cosa migliore è usare un metodo per nasconderlo:
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()
Il modo più semplice per raggiungere questo obiettivo è quello di scomporre il codice fuori in una funzione
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"}
}
Potresti aggiungere del testo sul perché questo funziona? Spiegazione – nikaltipar
per favore – Muhammed
Purtroppo, questo non sembra funzionare in .net 2.0 – chris
@ Chris - ho aggiornato la tua domanda di includere tale vincolo. Se hai bisogno di una versione particolare del framework, includi queste informazioni in futuro. Aggiornerò anche la mia risposta, ma sarà simile a quella di Jared ora. –