VB.NET辞書を作成するときに値を挿入する方法はありますか?できますが、したくないのですが、各項目に対してdict.Add(int、 "string")を実行します。
基本的に、私はVB.NETで "インスタンス化時にC#辞書に値を挿入する方法?" を実行したいと考えています。
var dictionary = new Dictionary<int, string>
{
{0, "string"},
{1, "string2"},
{2, "string3"}
};
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
これは2010より前のバージョンのVisual Basicではありません。
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()
メソッドを呼び出します。