azrosen92 azrosen92 - 3 months ago 22
C# Question

Proper way to initialize a C# dictionary with values already in it?

I am creating a dictionary in a C# file with the following code:

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


There is a red line under
new
with the error:


Feature 'collection initilializer' cannot be used because it is not part of the ISO-2 C# language specification


Can anyone explain what is going on here?

EDIT: okay, so it turns out I was using .NET version 2.

Answer

I can't reproduce this issue in a simple .NET 4.0 console application:

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

        Console.ReadKey();
    }
}

Can you try to reproduce it in a simple Console application and go from there? It seems likely that you're targeting .NET 2.0 (which doesn't support it) or client profile framework, rather than a version of .NET that supports initialization syntax.

Comments