Le moyen le plus concis pour initialiser une table de hachage C # [dupliquer]
Question
Cette question a déjà une réponse ici:
C # permet-il que les hashtables soient renseignés dans des expressions d'une ligne? Je pense à quelque chose d'équivalent au ci-dessous Python:
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?
La solution
C # 3 a une extension de langue 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<string, int>
{
{"a", 23}, {"b", 45}, {"c", 67}, {"d", 89}
};
}
}
Cette extension de langage est prise en charge par le compilateur C # 3 et par tout type qui implémente IEnumerable
et possède une méthode publique Add
.
Si cela vous intéresse, je vous suggère de lire cette question que j'ai posée. ici sur StackOverflow quant à pourquoi l’équipe C # a implémenté cette extension de langage de manière aussi curieuse (une fois que vous aurez lu les excellentes réponses à la question, vous verrez que cela a beaucoup de sens) .