Manière la plus concise d’initialiser une hashtable C #

C # permet-il que les hashtables soient remplis dans des expressions à une ligne? Je pense à quelque chose d’équivalent au Python ci-dessous:

mydict = {"a": 23, "b": 45, "c": 67, "d": 89} 

En d’autres termes, existe-t-il une alternative à la définition de chaque paire clé-valeur dans une expression distincte?

C # 3 a une extension de langage appelée initialiseurs de collection qui vous permet d’initialiser les valeurs d’une collection dans une seule déclaration.

Voici un exemple utilisant un Dictionary<,> :

 using System; using System.Collections.Generic; class Program { static void Main() { var dict = new Dictionary { {"a", 23}, {"b", 45}, {"c", 67}, {"d", 89} }; } } 

Cette extension de langage est prise en charge par le compilateur C # 3 et tout type qui implémente IEnumerable et possède une méthode publique Add .

Si vous êtes intéressé, je vous suggérerais de lire cette question que j’ai posée ici sur StackOverflow pour savoir pourquoi l’équipe C # a implémenté cette extension de langage de manière si curieuse (une fois que vous aurez lu les excellentes réponses à la question, vous verrez sens).