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 }
アイテムごとになどを書くだけで、2番目の例を機能させることができると思います。しかし、最初の例で可能なのと同じタイプの簡潔な構文を使用できるかどうか疑問に思っています。
それが不可能な場合、Dictionaryタイプが特別な理由は何ですか?