web-dev-qa-db-ja.com

C#ハッシュテーブルを初期化する最も簡潔な方法

C#では、ハッシュテーブルを1行の式に入力できますか?以下のPythonと同等のものを考えています:

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

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

48
RexE

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}
        };
    }
}

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

興味がある場合は、次をお読みになることをお勧めします この質問はStackOverflowでここで尋ねました について理由C#チームがこの言語を実装しましたそのような奇妙な方法での拡張(質問に対する優れた答えを読むと、それが非常に理にかなっていることがわかります)。

75
Andrew Hare