Ich erstelle ein Wörterbuch in einer C # -Datei mit dem folgenden Code:
private readonly Dictionary<string, XlFileFormat> FILE_TYPE_DICT
= new Dictionary<string, XlFileFormat>
{
{"csv", XlFileFormat.xlCSV},
{"html", XlFileFormat.xlHtml}
};
Es gibt eine rote Linie new
mit dem Fehler:
Die Funktion 'Collection Initilializer' kann nicht verwendet werden, da sie nicht Teil der ISO-2 C # -Sprachenspezifikation ist
Kann jemand erklären, was hier los ist?
EDIT: Okay, es stellte sich heraus, dass ich .NET Version 2 verwendet habe.
c#
dictionary
azrosen92
quelle
quelle
.cs
Datei, die von Visual Studio kompiliert wird, oder in einem.cshtml
? Hat Ihre Projektdatei einlanguageVersion
Element ?Antworten:
Ich kann dieses Problem in einer einfachen .NET 4.0-Konsolenanwendung nicht reproduzieren:
Können Sie versuchen, es in einer einfachen Konsolenanwendung zu reproduzieren und von dort aus fortzufahren? Es ist wahrscheinlich, dass Sie auf .NET 2.0 (das es nicht unterstützt) oder das Client-Profil-Framework abzielen und nicht auf eine Version von .NET, die die Initialisierungssyntax unterstützt.
quelle
Mit C # 6.0 können Sie ein Wörterbuch folgendermaßen erstellen:
Es funktioniert sogar mit benutzerdefinierten Typen.
quelle
Sie können eine
Dictionary
Inline (und andere Sammlungen) initialisieren . Jedes Mitglied ist in geschweiften Klammern enthalten:Siehe MSDN für Details.
quelle
Angenommen, wir haben ein solches Wörterbuch
Wir können es wie folgt initialisieren.
quelle
In C # 3.0 wurden Objektinitialisierer eingeführt. Überprüfen Sie, auf welche Framework-Version Sie abzielen.
Übersicht über C # 3.0
quelle
mit c # 6.0
quelle