C# 如何使用多个字符串值初始化字符串列表(list<;string>;)

C# 如何使用多个字符串值初始化字符串列表(list<;string>;),c#,string,list,C#,String,List,如何(使用C#初始值设定项)初始化字符串列表?我试过下面的例子,但不起作用 List<string> optionList = new List<string> { "AdditionalCardPersonAddressType","AutomaticRaiseCreditLimit","CardDeliveryTimeWeekDay" }(); List optionList=新列表 { “附加CardPersonalAddressType”、“自动信用额度

如何(使用C#初始值设定项)初始化字符串列表?我试过下面的例子,但不起作用

List<string> optionList = new List<string>
{
    "AdditionalCardPersonAddressType","AutomaticRaiseCreditLimit","CardDeliveryTimeWeekDay"
}();
List optionList=新列表
{
“附加CardPersonalAddressType”、“自动信用额度限制”、“CardDeliveryTimeWeekDay”
}();
只需删除结尾处的
()

List<string> optionList = new List<string>
            { "AdditionalCardPersonAdressType", /* rest of elements */ };
List optionList=新列表
{“AdditionalCardPersonalDressType”,/*其余元素*/};

您还没有真正提出问题,但代码应该是

List<string> optionList = new List<string> { "string1", "string2", ..., "stringN"}; 
List optionList=新列表{“string1”、“string2”、…、“stringN”};
i、 e.列表后面没有尾随()

List mylist=新列表(新字符串[]{“element1”、“element2”、“element3”});
List<string> mylist = new List<string>(new string[] { "element1", "element2", "element3" });

您的函数很好,但不起作用,因为您将
()
放在最后一个
}
之后。如果将
()
移动到
新列表()旁边的顶部,则错误停止

样本如下:

List<string> optionList = new List<string>()
{
    "AdditionalCardPersonAdressType","AutomaticRaiseCreditLimit","CardDeliveryTimeWeekDay"
};
List optionList=新列表()
{
“附加CardPersonalDressType”、“自动信用额度”、“CardDeliveryTimeWeekDay”
};

这就是你要做的


List list1=新列表()这是您初始化的方式,您还可以使用List.Add()使其更具动态性

List<string> optionList = new List<string> {"AdditionalCardPersonAdressType"};
optionList.Add("AutomaticRaiseCreditLimit");
optionList.Add("CardDeliveryTimeWeekDay");
List optionList=新列表{“AdditionalCardPersonalDressType”};
optionList.Add(“自动信用额度”);
添加(“CardDeliveryTimeWeekDay”);

这样,如果您从IO中获取值,可以将其添加到动态分配的列表中。

按如下方式移动括号:

var optionList = new List<string>(){"AdditionalCardPersonAdressType","AutomaticRaiseCreditLimit","CardDeliveryTimeWeekDay"};
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 optionList=new List(){“AdditionalCardPersonalDressType”、“AutomaticRasecCreditLimit”、“CardDeliveryTimeWeekDay”};
var-animals=新列表{“鸟”、“狗”};
列出动物=新列表{“鸟”、“狗”};

以上两种是最短的方法,请参见

一个非常酷的特性是列表初始值设定项也可以用于自定义类:您只需实现IEnumerable接口,并有一个名为Add的方法

例如,如果您有这样一个自定义类:

var optionList = new List<string>(){"AdditionalCardPersonAdressType","AutomaticRaiseCreditLimit","CardDeliveryTimeWeekDay"};
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();
    }
}

还有一些你可能遗漏的东西没有提到。我认为这可能是您遇到的问题,因为我怀疑您已经尝试删除尾部()了,但仍然出现了错误

首先,正如其他人在这里提到的,在您的示例中,您确实需要删除尾随()

但是,还要注意,列表位于System.Collections.Generic命名空间中

因此,您需要执行以下两个选项之一: [#下面的1可能是更可取的选择]

(一) 在代码顶部包含命名空间的使用,包括: 使用System.Collections.Generic

(二) 在声明中放入要列出的完全限定路径

System.Collections.Generic.List optList=new System.Collections.Generic.List {“AdditionalCardPersonalAddressType”、“AutomaticRasecCreditLimit”、“CardDeliveryTimeWeekDay” };

希望有帮助

正确实现列表但不包括System.Collections.Generic命名空间时收到的错误消息具有误导性且没有帮助:

“编译器错误CS0308:非泛型类型列表不能与类型参数一起使用。”


PS-它给出了这个没有帮助的错误,因为如果您没有指定要使用System.Collections.Generic.List,编译器会假定您正在尝试使用System.Windows.Documents.List。

您是指.NET/C的特定版本吗?据我所知,这项工作是从v3.5和更高版本开始的。我不了解2.0,因为我已经有一段时间没有使用它了…asp.net 2.0顺便说一句,我在{->error 7之后出现错误一个新的表达式需要()或[]在typeIn 2.0之后你必须这样使用它:
List optionList=new List(){“AdditionalCardPersonalesType”,/*其余元素*/};
。注意
()
这里:
new List()
。这是一项C#3语言功能,与您使用的框架版本无关。如果您仍在使用Visual Studio 2005,则无法使用此功能。错误7新表达式需要()或[]之后才能使用type@blgnklc,因为您使用的是不支持此功能的C#2。var optionList=new List{“string1”、“string2”、…、“stringN”};我认为没有充分的理由在这里初始化字符串数组来创建此对象。正在查找的任何人,请使用其他答案之一。@Unsliced和@Padel有更多正确的答案。如果使用
{对于C++ CLI,它类似:<代码>集合::泛型::列表^ MyList= GCnCub集合::GNAN::(GCNEXIT数组{ 0, 1, 2,3, 4 })< /Cord> @ Bobrot为什么?因为分配<代码>新字符串[]
没有效率?@DylanChensky我想说,一般来说,做任何不必要的事情都是没有效率的。当然,这一个实例可能没什么大不了的,但是想象一下,如果你的代码中到处都是这样的项目。这可能会带来很大的不同,尤其是在内存使用方面。这里有一个多维l在这个问题的答案中,这是否比公认的答案更可取?它似乎更简单,不需要中间的
字符串[]
var anives=new List{“bird”,“dog”};
在公认的答案中没有被建议。进一步
(新字符串[])
是接受答案中可以避免的添加命令。不提供比2010答案更多的信息,