web-dev-qa-db-fra.com

Comment puis-je initialiser une liste C # dans la même ligne que je le déclare? (Exemple de collection de chaîne IEnumerable)

J'écris mon code de test et je ne veux pas écrire:

List<string> nameslist = new List<string>();
nameslist.Add("one");
nameslist.Add("two");
nameslist.Add("three");

J'aimerais écrire

List<string> nameslist = new List<string>({"one", "two", "three"});

Cependant {"un", "deux", "trois"} n'est pas une "collection de chaînes IEnumerable". Comment puis-je initialiser cela sur une ligne à l’aide de la chaîne IEnumerable "Collection"?

94
Johannes
var list = new List<string> { "One", "Two", "Three" };

La syntaxe est essentiellement la suivante:

new List<Type> { Instance1, Instance2, Instance3 };

Ce qui est traduit par le compilateur en

List<string> list = new List<string>();
list.Add("One");
list.Add("Two");
list.Add("Three");
150
Matthew Abbott

Changer le code en

List<string> nameslist = new List<string> {"one", "two", "three"};

ou

List<string> nameslist = new List<string>(new[] {"one", "two", "three"});
16
Adriaan Stander

Il suffit de perdre la parenthèse:

var nameslist = new List<string> { "one", "two", "three" };
6
Richard Fawcett
List<string> nameslist = new List<string> {"one", "two", "three"} ?
3
Romain Meresse

Supprimer les parenthèses:

List<string> nameslist = new List<string> {"one", "two", "three"};
3
Tim Robinson

Cela dépend de la version de C # que vous utilisez, à partir de la version 3.0, vous pouvez utiliser ...

List<string> nameslist = new List<string> { "one", "two", "three" };
3
Sam Salisbury