2016-02-01 53 views
0

我有一個源字符串集合,我希望將它們連接成一個目標字符串。使用分隔符和字符串連接字符串集合到一個字符串中

的源集合如下所示:

{ "a", "b", "c" } 

我想輸出字符串爲:

abc 

但有時候,我希望有一個分離器也是如此。因此,對於相同的輸入,現在輸出爲:

a-b-c 

最後,輸入有時需要被封閉在其他字符,在這種情況下[],導致輸出爲:

[a]-[b]-[c] 

一個空的源集合應該產生一個空字符串。我會怎麼做呢?

+0

這是一個規範的問答。隨意編輯或添加自己的答案,或者找到一個適當的問答來解釋這個問題,而不是過於本地化。 – CodeCaster

+0

這是「分隔符」這個詞的正確用法嗎?我認爲分隔符*是一個分隔符,因此「分隔符和分隔符」實際上並不合理。也許只是說「分隔符和括號括起來」? –

+0

@標記什麼是更一般的術語呢? 「圈地」?我特別不想按名稱來引用實際的封閉字符。 :)隨意編輯問題。 – CodeCaster

回答

6

您可以使用static String.Join() method來做到這一點。

其基本用法是這樣:

string[] sourceData = new[] { "a", "b", "c" }; 
string separator = ""; 
var result = string.Join(separator, sourceData); 

當您提供一個空的分離,傳遞的值將簡單級聯,這樣的:​​。

源數據具有一定的字符串分開,提供所希望的值作爲第一個參數:

string[] sourceData = new[] { "a", "b", "c" }; 
string separator = "-"; 
var result = string.Join(separator, sourceData); 

現在串"-"將被插入源數據的每個項目之間:"a-b-c"

最後附上或修改的源集合中的每個項目,您可以使用Linq's Select() method使用投影:

string[] sourceData = new[] { "a", "b", "c" }; 
string separator = "-"; 
result = String.Join(separator, sourceData.Select(s => "[" + s + "]")); 

相反"[" + s + "]"的你最好使用String.Format()改善修改的可讀性和易用性:String.Format("[{0}]", s)

無論哪種方式,這也返回所需的結果:"[a]-[b]-[c]"