正确的方式来初始化一个C#字典的值已经在它?
我使用以下代码在C#文件中创建字典:
private readonly Dictionary<string, XlFileFormat> FILE_TYPE_DICT
= new Dictionary<string, XlFileFormat>
{
{"csv", XlFileFormat.xlCSV},
{"html", XlFileFormat.xlHtml}
};
new
错误下面有一条红线:
功能'collection initilializer'不能使用,因为它不是ISO-2 C#语言规范的一部分
任何人都可以解释这里发生了什么?
编辑:好的,所以事实证明我使用.NET版本2。
我无法在简单的.NET 4.0控制台应用程序中重现此问题:
static class Program
{
static void Main(string[] args)
{
Dictionary<string, string> myDict = new Dictionary<string, string>
{
{ "key1", "value1" },
{ "key2", "value2" }
};
Console.ReadKey();
}
}
你可以尝试在一个简单的控制台应用程序中重现它,并从那里去? 您似乎很可能瞄准了.NET 2.0(不支持它)或客户端配置文件框架,而不是支持初始化语法的.NET版本。
使用C#6.0,您可以按照以下方式创建字典:
var dict = new Dictionary<string, int>
{
["one"] = 1,
["two"] = 2,
["three"] = 3
};
它甚至适用于自定义类型。
你可以初始化一个Dictionary
(和其他集合)内联。 每个成员都带有大括号:
Dictionary<int, StudentName> students = new Dictionary<int, StudentName>
{
{ 111, new StudentName { FirstName = "Sachin", LastName = "Karnik", ID = 211 } },
{ 112, new StudentName { FirstName = "Dina", LastName = "Salimzianova", ID = 317 } },
{ 113, new StudentName { FirstName = "Andy", LastName = "Ruth", ID = 198 } }
};
详情请参阅MSDN。
链接地址: http://www.djcxy.com/p/21311.html上一篇: Proper way to initialize a C# dictionary with values already in it?
下一篇: What is the difference between C# versions like ver 2.0 and ver 3.0?