ViewDataDictionary
implémente IDictionary<string, object>
.
IDictionary<string, object>
est essentiellement une collection de KeyValuePair<string, object>
.
Votre initialiseur ViewDataDictionary
contient un autre jeu d'accolades qui représente un initialiseur KeyValuePair<string, object>
.
La raison pour laquelle cela est possible est expliquée dans this answer.
Vous pouvez ajouter plusieurs éléments par des virgules séparant les KeyValuePair<string, object>
initializers:
var data = new ViewDataDictionary { { "Name", "Value" }, { "Name2", "Value2" } };
Identique:
var data = new ViewDataDictionary
{
new KeyValuePair<string, object>("Name", "Value"),
new KeyValuePair<string, object>("Name2", "Value2")
};
Essentiellement, les accolades internes sont la syntaxe agréable pour initialiser KeyValuePair<string, object>
objets.
MSDN sur initializers de collecte dans [C#] (https://msdn.microsoft.com/en-us/library/bb384062.aspx) et [VB] (https://msdn.microsoft.com/fr-fr/library/dd293617.aspx) – KyleMit