2010-10-12 3 views

ответ

6

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

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

к сожалению, это не появляется на работе в .net 2.0 – chris

+0

@ Крис - Я обновил свой вопрос, чтобы включить это ограничение. Если вам нужна определенная версия фреймворка, пожалуйста, включите эту информацию в будущем. Я тоже обновлю свой ответ, но теперь он будет похож на Джареда. –

4

Самый простой путь для достижения этой цели является фактором кода из в функции

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
Dim myHash As New Hashtable() From { 
     {"key1", "value1"}, {"key2", "value2"} 
    } 
+2

Не могли бы вы добавить текст о том, почему это работает? – nikaltipar

+2

информация пожалуйста – Muhammed

Смежные вопросы