如何初始化(使用c#初始化器)字符串列表?我已经尝试了下面的例子,但它不工作。

List<string> optionList = new List<string>
{
    "AdditionalCardPersonAddressType","AutomaticRaiseCreditLimit","CardDeliveryTimeWeekDay"
}();

当前回答

与声明一起初始化的正确方法是:

List<string> optionList = new List<string>()
{
    "AdditionalCardPersonAdressType","AutomaticRaiseCreditLimit","CardDeliveryTimeWeekDay"
};

其他回答

与声明一起初始化的正确方法是:

List<string> optionList = new List<string>()
{
    "AdditionalCardPersonAdressType","AutomaticRaiseCreditLimit","CardDeliveryTimeWeekDay"
};

你就会这么做。

List <string> list1 = new List <string>();

不要忘记添加

使用System.Collections.Generic;

只需在最后删除()即可。

List<string> optionList = new List<string>
            { "AdditionalCardPersonAdressType", /* rest of elements */ };

一个非常酷的特性是列表初始化器也可以很好地用于自定义类:您只需实现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"
}

你的函数很好,但不能工作,因为你把()放在了最后一个}之后。如果将()移到顶部new List<string>()旁边,错误就会停止。

示例如下:

List<string> optionList = new List<string>()
{
    "AdditionalCardPersonAdressType","AutomaticRaiseCreditLimit","CardDeliveryTimeWeekDay"
};