2010-10-19 44 views
4

HI全部 嘗試將列表集合字符串轉換爲一個行字符串時出現問題。 但是,我必須用特定的格式編輯每個項目。將代碼列表集合寫入c中的字符串#

List<string> items = new List<string>(); 
string result = string.Empty; 

items.Add("First"); 
items.Add("Second"); 
items.Add("Last"); 

result = string.Join(",", items.ToArray()); 
Console.WriteLine(result); // Display: First,Second,Last 

但我想轉換爲這樣的事情:

[First],[Second],[Last] 

或類似

--First-,--Second-,--Last- 

我知道有一些技術使用的foreach語句代碼for循環。

但是,它可以編寫代碼只是將列表中的所有項目更改爲特定的模式字符串。

所以項目集合字符串包含從「First」到「\ First /」或「Last」到「'Last'」。

方面

+0

請您重新說明一下問題。我已經閱讀了幾次,但我仍然不確定是什麼問題。 – Neowizard 2010-10-19 09:04:04

+1

您可以使用初始化程序列表構建一個字符串集合(儘管它可能與您的場景不匹配):var items = new List (){「One」,「Two」,「Three」,};'。你也不必轉換爲數組來使用'string.Join'了。它現在有一個覆蓋這個簽名:'公共靜態字符串加入(字符串分隔符,IEnumerable 值);' – 2010-10-19 09:07:07

回答

10

這聽起來像你想使用之前加入的投影:

result = string.Join(",", items.Select(x => "[" + x + "]") 
           .ToArray()); 

我個人認爲,這比執行與更復雜的分隔符聯接清晰。它感覺就像你實際上得到用逗號連接的[First],和[Third]項目 - 而不是由],[加入的FirstSecondThird項目。

你的第二種形式是同樣容易實現:

result = string.Join(",", items.Select(x => "--" + x + "-") 
           .ToArray()); 

需要注意的是,如果你使用的是.NET 4,你不需要ToArray通話,因爲它引入了額外的過載,使string.Join容易的工作用。

+0

是的,這個代碼我尋找,更優雅的寫它。謝謝。 – 2010-10-19 09:10:11

3

爲什麼不

var result = "--" + string.Join("-,--", items.ToArray()) + "--"; 

var result = "[" + string.Join("],[", items.ToArray()) + "]"; 
2

使用加入,然後在前面加個字符,並根據需要後:

result = "[" + string.Join("],[", items.ToArray()) + "]"; 

將讓你

[First],[Second],[Last] 
相關問題