Très facile aujourd'hui, je pense. En C #, c'est:
Dictionary<String, String> dict = new Dictionary<string, string>() { { "", "" } };
Mais en vb, ce qui suit ne fonctionne pas.
Public dict As Dictionary(Of String, String) = New Dictionary(Of String, String) (("",""))
Je suis sûr qu'il existe un moyen de les ajouter lors de la déclaration, mais je ne sais pas comment. Et oui, je veux les ajouter à la déclaration, pas à tout autre moment. :) Donc j'espère que c'est possible. Merci tout le monde.
J'ai aussi essayé:
Public dict As Dictionary(Of String, String) = New Dictionary(Of String, String) ({"",""})
Et...
Public dict As Dictionary(Of String, String) = New Dictionary(Of String, String) {("","")}
Et...
Public dict As Dictionary(Of String, String) = New Dictionary(Of String, String) {{"",""}}
Cela est possible dans VB.NET 10:
Dim dict = New Dictionary(Of Integer, String) From {{ 1, "Test1" }, { 2, "Test1" }}
Malheureusement, IIRC VS 2008 utilise le compilateur VB.NET 9 qui ne prend pas en charge cette syntaxe.
Et pour ceux qui pourraient être intéressés, voici ce qui se passe dans les coulisses (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;
C'est à peu près la même chose, utilisez le mot clé From:
Dim d As New Dictionary(Of String, String) From {{"", ""}}
Cependant, cela nécessite la version 10 de la langue, disponible dans VS2010.
Voici une traduction intéressante: vous pouvez également avoir un dictionnaire générique de chaînes et un tableau de chaînes.
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 :)
Il n'y a pas de constructeur pour prendre un KeyValuePair pour un dictionnaire.