Existe-t-il un moyen d'insérer des valeurs dans un dictionnaire VB.NET lorsque je le crée? Je peux, mais je ne veux pas, faire dict.Add (int, "string") pour chaque élément.
Fondamentalement, je veux faire "Comment insérer des valeurs dans le dictionnaire C # lors de l'instanciation?" avec VB.NET.
var dictionary = new Dictionary<int, string>
{
{0, "string"},
{1, "string2"},
{2, "string3"}
};
Si vous utilisez Visual Studio 2010 ou version ultérieure, vous devez utiliser le mot clé FROM
comme ceci:
Dim days = New Dictionary(Of Integer, String) From {{0, "string"}, {1, "string2"}}
Voir: http://msdn.Microsoft.com/en-us/library/dd293617 (VS.100) .aspx
Si vous devez utiliser une version antérieure de Visual Studio et que vous devez le faire fréquemment, vous pouvez simplement hériter de la classe Dictionary et l'implémenter vous-même.
Cela pourrait ressembler à ceci:
Public Class InitializableDictionary
Inherits Dictionary(Of Int32, String)
Public Sub New(ByVal args() As KeyValuePair(Of Int32, String))
MyBase.New()
For Each kvp As KeyValuePair(Of Int32, String) In args
Me.Add(kvp.Key, kvp.Value)
Next
End Sub
End Class
Il ne s'agit pas de versions possibles de Visual Basic antérieures à 2010.
Dans VB2010 et versions ultérieures, vous pouvez utiliser le mot clé FROM
.
Dim days = New Dictionary(Of Integer, String) From {{0, "Sunday"}, {1, "Monday"}}
Référence
http://msdn.Microsoft.com/en-us/library/dd293617 (VS.100) .aspx
Ce que vous regardez est une fonctionnalité de C # appelée "initialiseurs de collection". La fonctionnalité existait également pour VB, mais a été supprimée avant la sortie de Visual Studio 2008. Cela ne vous aide pas pour le moment, mais cela devrait être disponible dans Visual Studio 2010. En attendant, vous devrez le faire à l'ancienne - appelez la méthode .Add()
de votre nouvelle instance.