如何使用许多字符串值</string>初始化C#字符串列表(List <string>)

时间:2010-06-29 08:46:36

标签: c# string list

如何初始化(使用C#初始化程序)字符串列表?我尝试过下面的例子,但它没有用。

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

14 个答案:

答案 0 :(得分:468)

最后删除()

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

答案 1 :(得分:419)

List<string> mylist = new List<string>(new string[] { "element1", "element2", "element3" });

我将不会担心OP列表中的一些细节...:)

答案 2 :(得分:131)

你还没有真正问过问题,但代码应该是

List<string> optionList = new List<string> { "string1", "string2", ..., "stringN"}; 

即。列表后面没有trailing()。

答案 3 :(得分:12)

您的功能很好但不起作用,因为您将()放在最后}之后。如果您将()移到new List<string>()旁边的顶部,则会停止错误。

以下示例:

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

答案 4 :(得分:7)

这是您初始化的方式,如果您想让它更具动态性,您也可以使用List.Add()。

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

通过这种方式,如果从IO中获取值,可以将其添加到动态分配的列表中。

答案 5 :(得分:5)

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

以上两种是最短的方法,请参见https://www.dotnetperls.com/list

答案 6 :(得分:2)

您可能遗漏了一些尚未提及的其他内容。我认为这可能是您遇到的问题,因为我怀疑您已经尝试删除尾随 () 但仍然出现错误。

首先,就像其他人在这里提到的那样,在您的示例中,您确实需要删除尾随 ();

但是,还要注意 List<> 在 System.Collections.Generic 命名空间中。

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

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

(2) 将 List 的完全限定路径放入您的声明中。

System.Collections.Generic.List optList=new System.Collections.Generic.List { "AdditionalCardPersonAddressType","AutomaticRaiseCreditLimit","CardDeliveryTimeWeekDay" };

希望有所帮助。

当您正确实施 List 但不包含 System.Collections.Generic 命名空间时收到的错误消息具有误导性且没有帮助:

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

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

答案 7 :(得分:1)

Move round brackets like this:

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

答案 8 :(得分:1)

一个非常酷的功能是列表初始化程序也可以与自定义类一起使用:您只需实现 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"
}

答案 9 :(得分:0)

List<string> animals= new List<string>();
animals.Add("dog");
animals.Add("tiger");

答案 10 :(得分:0)

List<string> facts = new List<string>() {
        "Coronavirus (COVID-19) is an illness caused by a virus that can spread from personto person.",
        "The virus that causes COVID-19 is a new coronavirus that has spread throughout the world. ",
        "COVID-19 symptoms can range from mild (or no symptoms) to severe illness",
        "Stay home if you are sick,except to get medical care.",
        "Avoid public transportation,ride-sharing, or taxis",
        "If you need medical attention,call ahead"
        };

答案 11 :(得分:0)

我已经看到了内容标签 C#,但如果有人可以使用 Java(这里的搜索词相同):

List<String> mylist = Arrays.asList(new String[] {"element1", "element2", "element3" }.clone());

答案 12 :(得分:0)

初始化和声明的正确方法是:

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

答案 13 :(得分:-8)

这就是你要做的。

&#13;
&#13;
List <string> list1 = new List <string>();
&#13;
&#13;
&#13;

不要忘记添加

&#13;
&#13;
using System.Collections.Generic;
&#13;
&#13;
&#13;