Como fazer com que a inicialização de array inline funcione como, por exemplo, Inicialização do dicionário?

Por que é possível inicializar umDictionary<T1,T2> como isso:

var dict = new Dictionary<string,int>() { 
    { "key1", 1 },
    { "key2", 2 }
};

... mas não inicializar, digamos, uma matriz deKeyValuePair<T1,T2> objetos exatamente da mesma maneira:

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."

Eu percebo que eu poderia fazer o segundo exemplo funcionar apenas escrevendonew KeyValuePair<string,int>() { "key1", 1 }, etc para cada item. Mas eu estou querendo saber se é possível usar o mesmo tipo de sintaxe concisa que é possível no primeiro exemplo.

Se não for possível, então o que faz oDicionário tipo tão especial?

questionAnswers(6)

yourAnswerToTheQuestion