vb.net - what - traducir de ingles a español
Agregue llaves/valores al diccionario en declaración (4)
Aquí hay una traducción genial: también puede tener un diccionario genérico de cadenas y matriz de cadenas.
C # :
private static readonly Dictionary<string, string[]> dics = new Dictionary<string, string[]>
{
{"sizes", new string[] {"small", "medium", "large"}},
{"colors", new string[] {"black", "red", "brown"}},
{"shapes", new string[] {"circle", "square"}}
};
VB :
Private Shared ReadOnly dics As New Dictionary(Of String, String()) From { _
{"sizes", New String() {"small", "medium", "large"}}, _
{"colors", New String() {"black", "red", "brown"}}, _
{"shapes", New String() {"circle", "square"}}}
Cool haa :)
Muy fácil hoy, creo. En C #, es:
Dictionary<String, String> dict = new Dictionary<string, string>() { { "", "" } };
Pero en vb, lo siguiente no funciona.
Public dict As Dictionary(Of String, String) = New Dictionary(Of String, String) (("",""))
Estoy bastante seguro de que hay una manera de agregarlos en la declaración, pero no estoy seguro de cómo. Y sí, quiero agregarlos en la declaración, no en ningún otro momento. :) Así que con suerte es posible. Gracias a todos.
También lo intenté:
Public dict As Dictionary(Of String, String) = New Dictionary(Of String, String) ({"",""})
Y...
Public dict As Dictionary(Of String, String) = New Dictionary(Of String, String) {("","")}
Y...
Public dict As Dictionary(Of String, String) = New Dictionary(Of String, String) {{"",""}}
Es casi lo mismo, use la palabra clave From:
Dim d As New Dictionary(Of String, String) From {{"", ""}}
Sin embargo, esto requiere la versión 10 del lenguaje, disponible en VS2010.
Esto es posible en VB.NET 10:
Dim dict = New Dictionary(Of Integer, String) From {{ 1, "Test1" }, { 2, "Test1" }}
Desafortunadamente, IIRC VS 2008 usa el compilador VB.NET 9 que no admite esta sintaxis.
Y para aquellos que podrían estar interesados, esto es lo que sucede detrás de las escenas (C #):
Dictionary<int, string> VB$t_ref$S0 = new Dictionary<int, string>();
VB$t_ref$S0.Add(1, "Test1");
VB$t_ref$S0.Add(2, "Test1");
Dictionary<int, string> dict = VB$t_ref$S0;
No hay un constructor para tomar un KeyValuePair para un diccionario.