Я создаю словарь в файле C # со следующим кодом:
private readonly Dictionary<string, XlFileFormat> FILE_TYPE_DICT
= new Dictionary<string, XlFileFormat>
{
{"csv", XlFileFormat.xlCSV},
{"html", XlFileFormat.xlHtml}
};
Есть красная линия new
с ошибкой:
Нельзя использовать функцию 'инициализатор коллекции', поскольку она не является частью спецификации языка ISO-2 C #
Кто-нибудь может объяснить, что здесь происходит?
РЕДАКТИРОВАТЬ: хорошо, так получается, что я использовал .NET версии 2.
c#
dictionary
azrosen92
источник
источник
.cs
Файл , который компилируется с помощью Visual Studio, или в.cshtml
? Есть ли в вашем файле проектаlanguageVersion
элемент ?Ответы:
Я не могу воспроизвести эту проблему в простом консольном приложении .NET 4.0:
Можете ли вы попытаться воспроизвести его в простом консольном приложении и перейти оттуда? Вполне вероятно, что вы ориентируетесь на .NET 2.0 (которая не поддерживает его) или на структуру профиля клиента, а не на версию .NET, которая поддерживает синтаксис инициализации.
источник
С C # 6.0 вы можете создать словарь следующим образом:
Это даже работает с пользовательскими типами.
источник
Вы можете инициализировать
Dictionary
(и другие коллекции) inline. Каждый член содержит скобки:Посмотрите MSDN для деталей.
источник
Предположим, у нас есть такой словарь
Мы можем инициализировать его следующим образом.
источник
Инициализаторы объектов были введены в C # 3.0, проверьте, на какую версию платформы вы нацеливаетесь.
Обзор C # 3.0
источник
с c # 6.0
источник