解释字典初始化语法(C#)

解释字典初始化语法(C#),c#,C#,我发现了一个例子,说明字典可以初始化如下: Dictionary<string, int> d = new Dictionary<string, int>() { {"cat", 2}, {"dog", 1}, {"llama", 0}, {"iguana", -1} }; Dictionary d=newdictionary() { {“猫”,2}, {“狗”,1}, {“骆驼”,0}, {“鬣蜥”,-1} }; 我不明白语法{“ca

我发现了一个例子,说明字典可以初始化如下:

Dictionary<string, int> d = new Dictionary<string, int>()
{
    {"cat", 2},
    {"dog", 1},
    {"llama", 0},
    {"iguana", -1}
};
Dictionary d=newdictionary()
{
{“猫”,2},
{“狗”,1},
{“骆驼”,0},
{“鬣蜥”,-1}
};

我不明白语法
{“cat”,2}
如何有效地创建键值对。集合初始化语法的形式似乎是
newmyobjtype(){}
,而匿名对象的形式是
{a=“a”,b=“b”}
。这里到底发生了什么?

字典
KeyValuePair
i集合
{“cat”,2}
是一个
键值对

这是一个键值对。
字典
说明键将是一个
字符串
,值将是一个
int
。因此,使用
{“cat”,2}
键为
“cat”
,值为
2
。我不确定为什么会有一个cat键和一个2的值,但这是一个带有字符串键和int值的字典示例。更多信息和示例可在此处找到:


我不确定您的问题是什么,但答案是这是集合初始化的语法,它提供了Add方法的快捷方式

这也适用,例如:

new List<DateTime>()
{
    {DateTime.Now},
    {new DateTime()},
    {DateTime.Now}
}

好的,让我们看看这里的代码:

Dictionary<string, int> d = new Dictionary<string, int>() 
{ 
    {"cat", 2}, 
    {"dog", 1}, 
    {"llama", 0}, 
    {"iguana", -1} 
};
在那里,你可以添加不同值的猫和狗,并调用它们

Dictionary<string, int> d = new Dictionary<string, int>() 
{ 
    {"cat", 2}, 
    {"dog", 1}, 
    {"llama", 0}, 
    {"iguana", -1} 
};
Dictionary<string, int> dict = new Dictionary<string, int>() 
{ 
    {"cat", 1}
};
dict.Add("dog", 2);
Console.WriteLine("Cat="+dict["cat"].ToString()+", Dog="+dict["dog"].ToString());