Создание хеш-таблицы со значениями в VB.NET - PullRequest
5 голосов
/ 12 октября 2010

Можно ли создать хеш-таблицу "предварительно заполненной" со значениями?

То есть что-то вроде:

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

Ответы [ 3 ]

7 голосов
/ 12 октября 2010

Прежде всего, Hashtable сейчас старые. Вместо этого используйте Dictionary(Of TKey, TValue). Что касается вашего вопроса, в Visual Studio 2010 вы можете использовать новый инициализатор коллекции синтаксис:

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

Поскольку вы работаете в .NET 2.0, вы не можете использовать этот синтаксис (вы можете и должны использовать универсальный словарь), и поэтому лучше всего использовать метод, чтобы скрыть его:

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()
4 голосов
/ 12 октября 2010

Самый простой способ сделать это - выделить код в функцию

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()
2 голосов
/ 02 апреля 2015
    Dim myHash As New Hashtable() From {
        {"key1", "value1"}, {"key2", "value2"}
    }
...