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 new
con el error:
La función 'initilializer de colección' no se puede usar porque no forma parte de la especificación del lenguaje ISO-2 C #
¿Alguien puede explicar lo que está pasando aquí?
EDITAR: está bien, así que resultó que estaba usando .NET versión 2.
c#
dictionary
azrosen92
fuente
fuente
.cs
archivo compilado por Visual Studio o en un.cshtml
? ¿Su archivo de proyecto tiene unlanguageVersion
elemento ?Respuestas:
No puedo reproducir este problema en una simple aplicación de consola .NET 4.0:
¿Puedes intentar reproducirlo en una aplicación de consola simple y seguir desde allí? Parece probable que esté apuntando a .NET 2.0 (que no lo admite) o al marco del perfil del cliente, en lugar de una versión de .NET que admita la sintaxis de inicialización.
fuente
Con C # 6.0, puede crear un diccionario de la siguiente manera:
Incluso funciona con tipos personalizados.
fuente
Puede inicializar una
Dictionary
(y otras colecciones) en línea. Cada miembro está contenido con llaves:Ver MSDN para más detalles.
fuente
Supongamos que tenemos un diccionario como este
Podemos inicializarlo de la siguiente manera.
fuente
Los inicializadores de objetos se introdujeron en C # 3.0, verifique a qué versión de marco se dirige.
Descripción general de C # 3.0
fuente
con c # 6.0
fuente