22

System.Collections.Generic.Dictionary1 つのステートメントで文字列のキーと値のペアを使用してオブジェクトを作成し、初期化することは可能ですか?

私は、文字列の配列のコンストラクターの線に沿って考えています..

例えば

Private mStringArray As String() = {"String1", "String2", "etc"}

これがシンタックス シュガーのようなものであることが判明した場合は、.Net 2.0 (Visual Studio 2005) と Visual Basic で使用できる回答を希望します。それがあなたを先延ばしにしないでください;o)

4

4 に答える 4

78

このような:

Dim myDic As New Dictionary(Of String, String) From {{"1", "One"}, {"2", "Two"}}
于 2010-07-07T14:16:40.367 に答える
7

VB.NET 2 ですぐにこれを行う方法はないと思いますが、ジェネリック ディクショナリを拡張して、希望どおりに動作させることができます。

以下のコンソール アプリは、これを示しています。

Imports System.Collections.Generic

Module Module1

    Sub Main()

        Dim items As New FancyDictionary(Of Integer, String)(New Object(,) {{1, "First Item"}, {2, "Second Item"}, {3, "Last Item"}})
        Dim enumerator As FancyDictionary(Of Integer, String).Enumerator = items.GetEnumerator

        While enumerator.MoveNext
            Console.WriteLine(String.Format("{0} : {1}", enumerator.Current.Key, enumerator.Current.Value))
        End While

        Console.Read()

    End Sub

    Public Class FancyDictionary(Of TKey, TValue)
        Inherits Dictionary(Of TKey, TValue)

        Public Sub New(ByVal InitialValues(,) As Object)

            For i As Integer = 0 To InitialValues.GetLength(0) - 1

                Me.Add(InitialValues(i, 0), InitialValues(i, 1))

            Next

        End Sub

    End Class

End Module
于 2008-11-26T20:43:19.637 に答える
5

次の構文を試してください。

Dictionary<string, double> dict = new Dictionary<string, double>()
{
  { "pi", 3.14},
  { "e", 2.71 }
 };

ただし、C# 3 (.NET 3.5) が必要になる場合があります

于 2008-11-25T19:25:52.913 に答える
0

これが古い投稿であることは知っていますが、この質問は頻繁に出てきます。もしも

1 つのステートメントで辞書を宣言および初期化する方法を次に示します。

Private __sampleDictionary As New Dictionary(Of Integer, String) From
{{1, "This is a string value"}, {2, "Another value"}}
于 2012-02-17T14:23:10.550 に答える