2010-10-12 15 views

risposta

6

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() 
+0

Purtroppo, questo non sembra funzionare in .net 2.0 – chris

+0

@ 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. –

4

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() 
2
Dim myHash As New Hashtable() From { 
     {"key1", "value1"}, {"key2", "value2"} 
    } 
+2

Potresti aggiungere del testo sul perché questo funziona? Spiegazione – nikaltipar

+2

per favore – Muhammed

Problemi correlati