[c#] ¿La forma correcta de inicializar un diccionario C # con los valores que ya contiene?



Answers

Con C # 6.0, puede crear un diccionario de la siguiente manera:

var dict = new Dictionary<string, int>
{
    ["one"] = 1,
    ["two"] = 2,
    ["three"] = 3
};

Incluso funciona con tipos personalizados.

Question

Estoy creando un diccionario en un archivo C # con el siguiente código:

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

Hay una línea roja debajo de new con el error:

El Feature 'collection initilializer' no se puede usar porque no es parte de la especificación del lenguaje ISO-2 C #

¿Alguien puede explicar lo que está pasando aquí?

EDITAR: de acuerdo, resulta que estaba usando .NET versión 2.




Supongamos que tenemos un diccionario como este

Dictionary<int,string> dict = new Dictionary<int, string>();
dict.Add(1, "Mohan");
dict.Add(2, "Kishor");
dict.Add(3, "Pankaj");
dict.Add(4, "Jeetu");

Podemos inicializarlo como sigue.

Dictionary<int, string> dict = new Dictionary<int, string>  
{
    { 1, "Mohan" },
    { 2, "Kishor" },
    { 3, "Pankaj" },
    { 4, "Jeetu" }
};



Related