50

C# では、1 行の式でハッシュテーブルを設定できますか? 以下のPythonに相当するものを考えています:

mydict = {"a": 23, "b": 45, "c": 67, "d": 89}

つまり、各キーと値のペアを個別の式で設定する代わりの方法はありますか?

4

1 に答える 1

77

C# 3 には、コレクション初期化子と呼ばれる言語拡張機能があり、1 つのステートメントでコレクションの値を初期化できます。

を使用した例を次に示しますDictionary<,>

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var dict = new Dictionary<string, int>
        {
            {"a", 23}, {"b", 45}, {"c", 67}, {"d", 89}
        };
    }
}

IEnumerableこの言語拡張機能は、C# 3 コンパイラと、パブリックAddメソッド を実装して持つすべての型でサポートされています。

興味のある方は、私が StackOverflow で尋ねたこの質問を読むことをお勧めします。なぜC #チームがこの言語拡張機能をこのように興味深い方法で実装したのかについてです (質問に対する優れた回答を読むと、それが多くのことを行うことがわかります)。検出)。

于 2009-05-08T18:21:33.487 に答える