2010-06-29 17 views
204

如何初始化(使用C#初始化程序)字符串列表?我嘗試過下面的例子,但它不起作用。如何用多個字符串值初始化C#字符串列表(列表<string>)

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

語言是什麼? – atzz 2010-06-29 08:48:08

+0

c#(在asp.net上)是lang。 – theklc 2010-06-29 08:48:44

+4

首先我會格式化代碼;) – Arseny 2010-06-29 08:50:37

回答

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

我被擔心一些在OP的名單細節不要... :)

+8

巧妙使用IEnumerable參數。我喜歡。 – 2010-06-29 12:13:06

+17

狡猾的使用這個詞狡猾! – ewitkows 2014-10-20 13:34:02

+53

我不認爲這裏有一個很好的理由來初始化一個字符串數組來創建這個對象。任何人在尋找,請使用其他答案之一。 – 2015-07-14 13:11:01

307

最後刪除()

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

@Oded:http://msdn.microsoft.com/ en-us/library/bb384062.aspx「集合初始值設定項」 – Lucero 2010-06-29 08:54:48

+0

您是否指的是.NET/C#的特定版本?據我所知,這項工作從v3.5及更高版本開始。不知道約2.0,因爲我有一段時間沒有使用它... – Padel 2010-06-29 08:55:57

+1

asp.net 2.0順便說一句我得到錯誤後{ - >錯誤一個新的表達式需要()或[]類型 – theklc 2010-06-29 09:02:59

84

你還沒有真正問了一個問題,但代碼應該是

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

即沒有結尾的()列表之後。

+0

錯誤因爲您使用的C#2不支持此功能,所以在 – theklc 2010-06-29 09:01:32

+2

@blgnklc類型之後,新表達式需要()或[]。 – 2010-06-29 09:15:23

+3

這應該是現在接受的答案。 – 2016-01-12 22:16:34

9

你的功能就好了,但不工作,因爲你把()後終於} 。如果將()移至new List<string>()旁邊的頂部,則錯誤將停止。下面

樣品:

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

這是你會怎麼做。

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

不要忘了添加

using System.Collections.Generic;

2

這是你如何初始化,你也可以使用List.Add()如果你想使其更具活力。

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

這樣,如果您從IO中取值,則可以將其添加到動態分配的列表中。