为什么可以这样初始化Dictionary<T1,T2>
:
var dict = new Dictionary<string,int>() {
{ "key1", 1 },
{ "key2", 2 }
};
KeyValuePair<T1,T2>
...但不是以完全相同的方式初始化一个对象数组:
var kvps = new KeyValuePair<string,int>[] {
{ "key1", 1 },
{ "key2", 2 }
};
// compiler error: "Array initializers can only be used in a variable
// or field initializer. Try using a new expression instead."
我意识到我可以通过new KeyValuePair<string,int>() { "key1", 1 }
为每个项目编写等来使第二个示例工作。但我想知道是否可以使用与第一个示例相同类型的简洁语法。
如果不可能,那么是什么让Dictionary类型如此特别?