6

Is it possible to create a hashtable "pre-populated" with values?

That is, something like:

dim myHash as new Hashtable() = {"key1", "value1", "key2", "value2" }

3 Answers 3

9

First of all, Hashtable's are old now. Use a Dictionary(Of TKey, TValue) instead. As for your question, with Visual Studio 2010 you can use the new collection initializer syntax:

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

Since you're on .NET 2.0, you can't use that syntax (you can and should still use a generic Dictionary), and so your best bet is using a method to hide it:

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()
Sign up to request clarification or add additional context in comments.

1 Comment

@chris - I updated your question to include that constraint. If you need a particular version of the framework, please include that information in the future. I'll update my answer as well, but it's gonna be similar to Jared's now.
4

The easiest way to accomplish this is to factor the code out into a function

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()

Comments

3
    Dim myHash As New Hashtable() From {
        {"key1", "value1"}, {"key2", "value2"}
    }

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.