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