Je crée un dictionnaire dans un fichier C # avec le code suivant:
private readonly Dictionary<string, XlFileFormat> FILE_TYPE_DICT
= new Dictionary<string, XlFileFormat>
{
{"csv", XlFileFormat.xlCSV},
{"html", XlFileFormat.xlHtml}
};
Il y a une ligne rouge sous new
avec l'erreur:
La fonctionnalité 'initiateur de collection' ne peut pas être utilisée car elle ne fait pas partie de la spécification du langage ISO-2 C #
Quelqu'un peut-il expliquer ce qui se passe ici?
EDIT: d' accord, il s'avère que j'utilisais .NET version 2.
c#
dictionary
azrosen92
la source
la source
.cs
fichier qui est compilé par Visual Studio, ou dans un.cshtml
? Votre dossier de projet contient-il unlanguageVersion
élément ?Réponses:
Je ne peux pas reproduire ce problème dans une simple application console .NET 4.0:
Pouvez-vous essayer de le reproduire dans une simple application console et partir de là? Il semble probable que vous ciblez .NET 2.0 (qui ne le prend pas en charge) ou le cadre de profil client, plutôt qu'une version de .NET qui prend en charge la syntaxe d'initialisation.
la source
Avec C # 6.0, vous pouvez créer un dictionnaire de la manière suivante:
Il fonctionne même avec des types personnalisés.
la source
Vous pouvez initialiser un
Dictionary
(et d'autres collections) en ligne. Chaque membre est contenu avec des accolades:Voir MSDN pour plus de détails.
la source
Supposons que nous ayons un dictionnaire comme celui-ci
Nous pouvons l'initialiser comme suit.
la source
Les initialiseurs d'objets ont été introduits dans C # 3.0, vérifiez quelle version de framework vous ciblez.
Présentation de C # 3.0
la source
avec c # 6.0
la source