[C# 6.0新機能] インデックス初期化子

C# 6.0では、インデックス初期化子が追加されました。
これにより、Dictionaryは宣言と初期化を同時に行うことが可能です。
従来だと以下のように記述していました。

Dictionary<string, string> fruit = new Dictionary<string, string>();
fruit["Apple"] = "リンゴ";
fruit["Orange"] = "みかん";

C# 6.0では以下のように記述することが可能です。
変数名fruitを記述する必要はなくなり、「[“Key”] = Value,」という形式で初期化ができます。

Dictionary<string, string> fruit = new Dictionary<string, string>()
{
    ["Apple"] = "リンゴ",
    ["Orange"] = "みかん",
};

インデックス初期化子はDictionaryだけではなく、インデクサでも使用可能です。

public class Sample
{
    private string[] names = { "Eric", "Paul"};

    public string this[int x]
    {
        get
        {
            return names[x];
        }
        set
        {
            names[x] = value;
        }
    }
}


Sample smp = new Sample()
{
    // インデックス初期化子を利用した初期化
    [0] = "Jhon",
    [1] = "Alex",
};

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です