48 votes

Le moyen le plus concis pour initialiser une table de hachage C #

Est-ce que C # permet aux hashtables d'être remplis dans des expressions d'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?

75voto

Andrew Hare Points 159332

C# 3 est une extension du langage appelé initialiseurs de la collection qui vous permettent d'initialiser les valeurs d'une collection dans une déclaration.

Voici un exemple en 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 du langage est pris en charge par le C# 3 de compilateur et de tout type qui implémente IEnumerable et a un public Add méthode.

Si vous êtes intéressé, je vous suggère de lire cette question que j'ai posée ici sur StackOverflow quant à pourquoi le C# de l'équipe de mise en œuvre de cette extension du langage dans un curieux manière (une fois que vous lisez l'excellent réponses à la question, vous verrez que cela fait beaucoup de sens).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X