Как я могу инициализировать список С# в той же строке, которую я объявляю. (Пример коллекции строк IEnumerable)

Я пишу свой тестовый код, и я не хочу писать wo:

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

Я хотел бы написать

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

Однако { "one", "two", "three" } не является "IEnumerable string Collection". Как я могу инициализировать это в одной строке, используя строку IEnumerable Collection??

Ответ 1

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

По существу, синтаксис:

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

Что переводится компилятором как

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

Ответ 2

Измените код на

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

или

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

Ответ 3

Просто потеряйте скобку:

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

Ответ 4

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

Ответ 5

Удалите круглые скобки:

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

Ответ 6

Это зависит от того, какую версию С# вы используете, начиная с версии 3.0, которую вы можете использовать...

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

Ответ 7

Я думаю, что это будет работать для int, long и строковых значений.

List<int> list = new List<int>(new int[]{ 2, 3, 7 });


var animals = new List<string>() { "bird", "dog" };