Tworzę słownik w pliku C # z następującym kodem:
private readonly Dictionary<string, XlFileFormat> FILE_TYPE_DICT
= new Dictionary<string, XlFileFormat>
{
{"csv", XlFileFormat.xlCSV},
{"html", XlFileFormat.xlHtml}
};
Pod new
błędem znajduje się czerwona linia :
Nie można użyć funkcji inicjalizującej kolekcję, ponieważ nie jest ona częścią specyfikacji języka ISO-2 C #
Czy ktoś może wyjaśnić, co się tutaj dzieje?
EDYCJA: w porządku, więc okazuje się, że korzystałem z .NET w wersji 2.
c#
dictionary
azrosen92
źródło
źródło
.cs
Plik, który zostanie opracowany przez Visual Studio, albo w.cshtml
? Czy plik projektu malanguageVersion
element ?Odpowiedzi:
Nie mogę odtworzyć tego problemu w prostej aplikacji konsoli .NET 4.0:
Czy możesz spróbować odtworzyć go w prostej aplikacji na konsolę i przejść stamtąd? Wydaje się prawdopodobne, że celujesz w .NET 2.0 (który go nie obsługuje) lub w strukturę profilu klienta, a nie w wersję .NET, która obsługuje składnię inicjującą.
źródło
W wersji C # 6.0 możesz utworzyć słownik w następujący sposób:
Działa nawet z niestandardowymi typami.
źródło
Możesz zainicjować
Dictionary
(i inne kolekcje) wbudowane. Każdy element zawiera nawiasy klamrowe:Szczegółowe informacje można znaleźć w MSDN .
źródło
Załóżmy, że mamy taki słownik
Możemy zainicjować go w następujący sposób.
źródło
Inicjatory obiektów zostały wprowadzone w C # 3.0, sprawdź, którą wersję frameworku kierujesz.
Omówienie C # 3.0
źródło
z wersją c # 6.0
źródło