Pan*_*kaj 47 c# collections dictionary collection-initializer c#-6.0
在最近出现了很多讨论关于C#什么新的6.0
的一个最受关注的功能是通过Dictionary在初始化C#6.0
别急,我们一直在使用集合初始化器来初始化集合,并可以很好的初始化Dictionary也.NET 4.0和.NET 4.5(不知道旧版本)之类的
Dictionary<int, string> myDict = new Dictionary<int, string>() {
{ 1,"Pankaj"},
{ 2,"Pankaj"},
{ 3,"Pankaj"}
};
Run Code Online (Sandbox Code Playgroud)
那么C#6.0中有什么新东西,他们在C#6.0中讨论的是什么字典初始化器
i3a*_*non 75
虽然您可以使用集合初始化程序初始化字典,但这非常麻烦.特别是对于那些应该是语法糖的东西.
字典初始化器更清晰:
var myDict = new Dictionary<int, string>
{
[1] = "Pankaj",
[2] = "Pankaj",
[3] = "Pankaj"
};
Run Code Online (Sandbox Code Playgroud)
更重要的是,这些初始化程序不仅适用于字典,它们可用于支持索引器的任何对象,例如List<T>:
var array = new[] { 1, 2, 3 };
var list = new List<int>(array) { [1] = 5 };
foreach (var item in list)
{
Console.WriteLine(item);
}
Run Code Online (Sandbox Code Playgroud)
输出:
1
5
3
Run Code Online (Sandbox Code Playgroud)