如何初始化(使用c#初始化器)字符串列表?我已经尝试了下面的例子,但它不工作。
List<string> optionList = new List<string>
{
"AdditionalCardPersonAddressType","AutomaticRaiseCreditLimit","CardDeliveryTimeWeekDay"
}();
如何初始化(使用c#初始化器)字符串列表?我已经尝试了下面的例子,但它不工作。
List<string> optionList = new List<string>
{
"AdditionalCardPersonAddressType","AutomaticRaiseCreditLimit","CardDeliveryTimeWeekDay"
}();
当前回答
一个非常酷的特性是列表初始化器也可以很好地用于自定义类:您只需实现IEnumerable接口并有一个名为Add的方法。
例如,如果你有一个这样的自定义类:
class MyCustomCollection : System.Collections.IEnumerable
{
List<string> _items = new List<string>();
public void Add(string item)
{
_items.Add(item);
}
public IEnumerator GetEnumerator()
{
return _items.GetEnumerator();
}
}
这是可行的:
var myTestCollection = new MyCustomCollection()
{
"item1",
"item2"
}
其他回答
var animals = new List<string> { "bird", "dog" };
List<string> animals= new List<string> { "bird", "dog" };
以上两种是最短的方式,请参见https://www.dotnetperls.com/list
这就是初始化的方式,如果你想让它更动态,你也可以使用List.Add()。
List<string> optionList = new List<string> {"AdditionalCardPersonAdressType"};
optionList.Add("AutomaticRaiseCreditLimit");
optionList.Add("CardDeliveryTimeWeekDay");
通过这种方式,如果从IO中获取值,可以将其添加到动态分配的列表中。
只需在最后删除()即可。
List<string> optionList = new List<string>
{ "AdditionalCardPersonAdressType", /* rest of elements */ };
您还没有真正提出问题,但代码应该提出问题
List<string> optionList = new List<string> { "string1", "string2", ..., "stringN"};
例如,在列表后面没有尾随()。
像这样移动括号:
var optionList = new List<string>(){"AdditionalCardPersonAdressType","AutomaticRaiseCreditLimit","CardDeliveryTimeWeekDay"};