2011-07-22 70 views
0

我需要將位於List<string>之內的字符串合併到oneliner中。我想出了一個簡單的解決方案,但我不確定這是否是最好的方法。上串有問題的,將字符串與它們在C中的分隔符合並在一起#

第一個版本開始:

string benchmarkiUjemneDatyRazem = ""; 
foreach (string s in benchmarkiUjemne) { 
    benchmarkiUjemneDatyRazem = benchmarkiUjemneDatyRazem + "," + s; 
} 

第二個版本(LINQ功率),但仍與`:

string benchmarkiUjemneDatyRazem = benchmarkiUjemne.Aggregate("", (current, s) => current + "," + s); 

工作版本,而,但線的量使得有些疼痛稍後閱讀:

int b = 0; 
    string benchmarkiUjemneDatyRazem = ""; 
    foreach (string s in benchmarkiUjemne) { 
     if (b == 0) { 
      b = 1; 
      benchmarkiUjemneDatyRazem = s; 
      continue; 
     } 
     benchmarkiUjemneDatyRazem = benchmarkiUjemneDatyRazem + "," + s; 
    } 

最終版本,我想出了Linq與替代第一個字符:

string benchmarkiUjemneDatyRazem = benchmarkiUjemne.Aggregate("", (current, s) => current + "," + s).Substring(1); 

這是好的方法來解決這個問題嗎?或者有更好的方法來實際做到這一點?像使用StringBuilder左右?

回答

6

如果您使用.NET 4中,你可以使用string.Join(在早期版本中,這隻會工作,如果benchmarkiUjemnestring[]):

string result = string.Join(",", benchmarkiUjemne); 

如果是這樣的.Net 3.5或以上,你可以

string result = string.Join(",", benchmarkiUjemne.ToArray()); 
+1

http://msdn.microsoft.com/en-us/library/57a79xd0.aspx – TJHeuvel

+3

你可以通過調用列表上的.ToArray()來輕鬆解決這個問題。 =) –

+0

我正在使用NET 4 – MadBoy

3

使用string.Join

var res = string.Join(",", benchmarkiUjemne); 
仍然在名單上調用 ToArray使用
相關問題