1. ホーム
  2. c#

[解決済み] C# の辞書を値で初期化する適切な方法

2022-03-15 03:57:30

質問

C#のファイルに以下のようなコードで辞書を作成しています。

private readonly Dictionary<string, XlFileFormat> FILE_TYPE_DICT
        = new Dictionary<string, XlFileFormat>
        {
            {"csv", XlFileFormat.xlCSV},
            {"html", XlFileFormat.xlHtml}
        };

の下に赤い線があります。 new をエラーで表示します。

機能 'collection initilializer' は、ISO-2 C# 言語仕様に含まれていないため、使用することができません。

どうなっているんだ?

.NETバージョン2を使っています。

どのように解決するのですか?

簡単な.NET 4.0のコンソールアプリケーションでこの問題を再現することができません。

static class Program
{
    static void Main(string[] args)
    {
        var myDict = new Dictionary<string, string>
        {
            { "key1", "value1" },
            { "key2", "value2" }
        };

        Console.ReadKey();
    }
}

簡単なConsoleアプリケーションで再現してみて、そこから先はどうでしょうか?初期化構文をサポートする.NETのバージョンではなく、.NET 2.0(これはサポートしていません)またはクライアントプロファイルフレームワークをターゲットにしている可能性があるようです。