152 votes

Un moyen rapide de créer une liste de valeurs en C# ?

Je cherche un moyen rapide de créer une liste de valeurs en C#. En Java, j'utilise fréquemment l'extrait ci-dessous :

List<String> l = Arrays.asList("test1","test2","test3");

Existe-t-il un équivalent en C# en dehors de l'évident ci-dessous ?

IList<string> l = new List<string>(new string[] {"test1","test2","test3"});

255voto

Neil Williams Points 6446

Consultez le document de C# 3.0 Initialisateurs de collection .

var list = new List<string> { "test1", "test2", "test3" };

26voto

Konrad Rudolph Points 231505

Si vous cherchez à réduire le désordre, pensez à

var lst = new List<string> { "foo", "bar" };

Cette méthode utilise deux fonctionnalités de C# 3.0 : l'inférence de type (la fonction var ) et l'initialisateur de collection pour les listes.

Si vous pouvez vous contenter d'un tableau, il est encore plus court (de peu) :

var arr = new [] { "foo", "bar" };

5 votes

Je ne choisirais pas typiquement mes structures de données en fonction de celle qui prend le moins de caractères à initialiser...

1 votes

@Harrichael Exact, et moi non plus. Mais à moins d'avoir besoin d'une liste, il n'y a aucune raison d'en utiliser une.

11voto

Reed Copsey Points 315315

En C# 3, vous pouvez le faire :

IList<string> l = new List<string> { "test1", "test2", "test3" };

Cette opération utilise la nouvelle syntaxe d'initialisation des collections en C# 3.

En C# 2, j'utiliserais simplement votre deuxième option.

0 votes

Nitpick : initialisateur de collection, pas initialisateur d'objet.

9voto

Matt Grande Points 6230
IList<string> list = new List<string> {"test1", "test2", "test3"}

4voto

Noldorin Points 67794

Vous pouvez simplifier légèrement cette ligne de code en C# en utilisant une balise initialisation de la collection .

var lst = new List<string> {"test1","test2","test3"};

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