如何在声明它的同一行中初始化 C # List

我正在编写我的 testcode,我不想写:

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

我很想写作

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

但是{“一”、“二”、“三”}不是“ IEnumable 字符串集合”。如何使用 IEnumable 字符串集合在一行中初始化它?

180567 次浏览

将代码更改为

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

或者

List<string> nameslist = new List<string>(new[] {"one", "two", "three"});
List<string> nameslist = new List<string> {"one", "two", "three"} ?
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");

去掉括号:

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

这取决于您使用的是哪个版本的 C # ,从3.0版本开始您可以使用..。

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

省掉括号吧:

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

我认为这对 int、 long 和 string 值都适用。

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




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

这是一条路。

List<int> list = new List<int>{ 1, 2, 3, 4, 5 };

这是另一条路。

List<int> list2 = new List<int>();


list2.Add(1);


list2.Add(2);

绳子也一样。

例如:

List<string> list3 = new List<string> { "Hello", "World" };

张贴这个答案的人想要初始化列表与 POCO,也因为这是第一件事,弹出在搜索,但所有的答案只有列表的类型字符串。

您可以通过两种方式来实现这一点,一种是通过 setter 赋值直接设置属性,另一种是通过创建一个接受 params 并设置属性的构造函数直接设置属性。

class MObject {
public int Code { get; set; }
public string Org { get; set; }
}


List<MObject> theList = new List<MObject> { new MObject{ PASCode = 111, Org="Oracle" }, new MObject{ PASCode = 444, Org="MS"} };

通过参数化构造函数进行 OR

class MObject {
public MObject(int code, string org)
{
Code = code;
Org = org;
}


public int Code { get; set; }
public string Org { get; set; }
}


List<MObject> theList = new List<MObject> {new MObject( 111, "Oracle" ), new MObject(222,"SAP")};