web-dev-qa-db-ja.com

宣言時に辞書にキー/値を追加します

今日はとても簡単だと思います。 C#では、その:

Dictionary<String, String> dict = new Dictionary<string, string>() { { "", "" } };

しかし、VBでは、以下は機能しません。

Public dict As Dictionary(Of String, String) = New Dictionary(Of String, String) (("",""))

宣言時にそれらを追加する方法があると確信していますが、方法はわかりません。そして、はい、私はそれらを宣言時に追加します。 :)だから、うまくいけばそれが可能です。みんな、ありがとう。

私も試しました:

Public dict As Dictionary(Of String, String) = New Dictionary(Of String, String) ({"",""})

そして...

Public dict As Dictionary(Of String, String) = New Dictionary(Of String, String) {("","")}

そして...

Public dict As Dictionary(Of String, String) = New Dictionary(Of String, String) {{"",""}}
64
XstreamINsanity

これはVB.NET 10で可能です。

Dim dict = New Dictionary(Of Integer, String) From {{ 1, "Test1" }, { 2, "Test1" }}

残念ながら、IIRC VS 2008はこの構文をサポートしないVB.NET 9コンパイラを使用します。

そして、興味があるかもしれない人のために、舞台裏で何が起こるかです(C#):

Dictionary<int, string> VB$t_ref$S0 = new Dictionary<int, string>();
VB$t_ref$S0.Add(1, "Test1");
VB$t_ref$S0.Add(2, "Test1");
Dictionary<int, string> dict = VB$t_ref$S0;
104
Darin Dimitrov

ほぼ同じです。Fromキーワードを使用します。

    Dim d As New Dictionary(Of String, String) From {{"", ""}}

ただし、これにはVS2010で使用可能なバージョン10の言語が必要です。

12
Hans Passant

ここにクールな翻訳があります:文字列と文字列配列の一般的な辞書を持つこともできます。

C#

private static readonly Dictionary<string, string[]> dics = new Dictionary<string, string[]>
        {
            {"sizes", new string[]   {"small", "medium", "large"}},
            {"colors", new string[]  {"black", "red", "brown"}},
            {"shapes", new string[]  {"circle", "square"}}
        };

[〜#〜] vb [〜#〜]

Private Shared ReadOnly dics As New Dictionary(Of String, String()) From { _
 {"sizes", New String() {"small", "medium", "large"}}, _
 {"colors", New String() {"black", "red", "brown"}}, _
 {"shapes", New String() {"circle", "square"}}}

かっこいい

9
Mike

辞書のKeyValuePairを取得するコンストラクタはありません。

1
vulkanino