2012-07-04 64 views
1

這是一種在我們的框架的一部分中經常出現的模式。 給定一個字符串數組,我們必須將所有這些字符串連接,並用分號分隔。用分號並列字符串數組

我想知道在哪種方式可以完成的優雅方式。 我已經看到了我們的代碼庫中的一些變化,並且總是,當我必須這樣做時,我不得不重新考慮。

我現在的模式是這樣的:

String[] values = new String[] {"a","b","c","d"}; 
String concat = String.Empty; 
foreach(String s in values) 
{ 
    if(String.IsEmptyOrNullString(s) == false) 
     concat + = ", "; 
    concat += s; 
} 

什麼negs我是if語句,我可以在循環之前插入第一個項目,以啓動循環,從索引1,但這doesn'增加可讀性。

您有什麼建議?

+0

'if(!String.IsEmptyO rNullString(s))'會使它更具可讀性。 –

回答

7

您可以使用string.Join()

String[] values = new String[] {"a","b","c","d"}; 
var concat = string.Join(", ", values); 

這將導致一些看起來像這樣:

A,B,C,d

+0

+1,儘管不需要首先用'Empty'分配'concat',只需從'Join'返回即可初始化它。 –

+0

@Damien_The_Unbeliever,你說得對,我只是複製了他的代碼片段並對其進行了修改。忘了刪除該部分,感謝您發現它。 –

1

嘗試:

var result = string.Join(",", values.Where(s => !string.IsNullOrEmpty(s)));