Подтвердить что ты не робот

Как вставить значения в словарь VB.NET при создании экземпляра?

Есть ли способ, которым я могу вставлять значения в словарь VB.NET при его создании? Я могу, но не хочу, делать dict.Add(int, "string" ) для каждого элемента.

В принципе, я хочу сделать "Как вставить значения в словарь С# при создании экземпляра?" с помощью VB.NET.

var dictionary = new Dictionary<int, string>
    {
        {0, "string"},
        {1, "string2"},
        {2, "string3"}
    };
4b9b3361

Ответ 1

При использовании 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, и вам нужно делать это часто, вы можете просто наследовать класс словаря и реализовать его самостоятельно.

Он может выглядеть примерно так:

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

Ответ 2

Это не возможные версии 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

Ответ 3

То, что вы смотрите, - это функция С#, называемая "инициализаторы коллекции". Эта функция существовала и для VB, но была разрезана до выпуска Visual Studio 2008. Это не поможет вам прямо сейчас, но ожидается, что она будет доступна в Visual Studio 2010. В то же время вам придется сделайте это старомодным способом; вызовите метод .Add() вашего нового экземпляра.