azrosen92 azrosen92 - 1 year ago 140
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
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 Source

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


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.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download