Как вставить значения в словарь VB.NET при создании экземпляра?
Есть ли способ, которым я могу вставить значения в словарь VB.NET при его создании? Я могу, но не хочу делать dict.Add(int, "string") для каждого элемента.
По сути, я хочу сделать "Как вставить значения в C# словарь при создании экземпляра?" с VB.NET.
var dictionary = new Dictionary<int, string>
{
{0, "string"},
{1, "string2"},
{2, "string3"}
};
3 ответа
Если вы используете Visual Studio 2010 или более позднюю версию, вы должны использовать FROM
ключевое слово как это:
Dim days = New Dictionary(Of Integer, String) From {{0, "string"}, {1, "string2"}}
См.: http://msdn.microsoft.com/en-us/library/dd293617(VS.100).aspx
Если вам нужно использовать предыдущую версию Visual Studio и делать это часто, вы можете просто унаследовать класс Dictionary и реализовать его самостоятельно.
Это может выглядеть примерно так:
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
Это не возможные версии Visual Basic до 2010 года.
В VB2010 и позже вы можете использовать FROM
ключевое слово.
Dim days = New Dictionary(Of Integer, String) From {{0, "Sunday"}, {1, "Monday"}}
Ссылка
http://msdn.microsoft.com/en-us/library/dd293617(VS.100).aspx
То, на что вы обращаете внимание, - это функция C#, называемая "инициализаторы коллекции". Эта функция существовала и для VB, но была отключена до выпуска Visual Studio 2008. Она сейчас вам не поможет, но ожидается, что она будет доступна в Visual Studio 2010. Тем временем вам придется сделай это по старинке - позвони .Add()
метод вашего нового экземпляра.