2010-10-12 17 views

Respuesta

6

En primer lugar, Hashtable de edad son ahora. Use un Dictionary(Of TKey, TValue) en su lugar. En cuanto a su pregunta, con Visual Studio 2010 puede utilizar la nueva sintaxis collection initializer:

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

Ya que estás en .NET 2.0, no puede utilizar la sintaxis (que puede y debe seguir utilizando un diccionario genérico), y así que lo mejor está utilizando un método de ocultarlo:

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

Lamentablemente, esto no parece funcionar en .net 2.0 – chris

+0

@ Chris - he actualizado su pregunta para incluir esa restricción. Si necesita una versión particular del marco, incluya esa información en el futuro. Actualizaré mi respuesta también, pero será similar a la de Jared ahora. –

4

La forma más sencilla de lograr esto es factorizar el código a cabo en una función

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

¿Podría agregar algo de texto sobre por qué funciona esto? – nikaltipar

+2

explicación por favor – Muhammed

Cuestiones relacionadas