Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to insert values into VB.NET Dictionary on instantiation?

Is there a way that I can insert values into a VB.NET Dictionary when I create it? I can, but don't want to, do dict.Add(int, "string") for each item.

Basically, I want to do "How to insert values into C# Dictionary on instantiation?" with VB.NET.

var dictionary = new Dictionary<int, string>     {         {0, "string"},         {1, "string2"},         {2, "string3"}     }; 
like image 371
onsaito Avatar asked Nov 03 '09 00:11

onsaito


2 Answers

If using Visual Studio 2010 or later you should use the FROM keyword like this:

Dim days = New Dictionary(Of Integer, String) From {{0, "string"}, {1, "string2"}} 

See: http://msdn.microsoft.com/en-us/library/dd293617(VS.100).aspx

If you need to use a prior version of Visual Studio and you need to do this frequently you could just inherit from the Dictionary class and implement it yourself.

It might look something like this:

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 
like image 56
brendan Avatar answered Sep 27 '22 23:09

brendan


This is not possible versions of Visual Basic prior to 2010.

In VB2010 and later, you can use the FROM keyword.

Dim days = New Dictionary(Of Integer, String) From {{0, "Sunday"}, {1, "Monday"}} 

Reference

http://msdn.microsoft.com/en-us/library/dd293617(VS.100).aspx

like image 23
Stefan Avatar answered Sep 27 '22 21:09

Stefan