Как сделать так, чтобы инициализация встроенного массива работала, например, Словарь инициализации?

Почему можно инициализировать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 типа такой особенный?

Ответы на вопрос(6)

Ваш ответ на вопрос