2010-09-09 60 views
2

假設我有一個數組int [] arr = {1,2,3,4}我可以在一行代碼中讀取數組嗎?

我想將其轉換爲字符串。 結果我想它是這樣的字符串a =「1,2,3,4」;

所以我可以做些什麼「string a = arr ....」來做到這一點,而不是寫一個for循環?

感謝

回答

1
string result = string.Join(", ", arr.Select(item => item.ToString()).ToArray()); 
+0

除了你不需要在中間所有的東西。 String.Join將只與數組一起工作 – Josh 2010-09-09 01:44:24

+2

@Josh:如果您使用的是.NET 4.0。 – 2010-09-09 01:49:42

8

隨着.NET 4中,你可以簡單地做:

var result = string.Join(",", arr); 

在早期版本中,

var result = string.Join(",", arr.Select(a => a.ToString()).ToArray()); 
1

如果您不能使用.NET 4.0(我還不能爲我們的客戶不會部署它),您可以使用擴展方法。這將適用於所有IEnumerable<T>'s適當實施.ToString()覆蓋。你也可以選擇你想要的分類器。

一旦你有了下面,你可以做string s = myenumerable.Seperated(",");

public static class EnumerableExtender 
    { 
     public static string Separated<T>(this IEnumerable<T> l, string separator) 
     { 
      var sb = new StringBuilder(); 
      var first = true; 
      foreach (var o in l) 
      { 
       if (first) first = false; else sb.Append(separator); 
       sb.Append(o.ToString()); 
      } 
      return sb.ToString(); 
     } 
    } 
+0

+1 - 一個.NET 4.0程序員的例子,他不想爲了創建特定的API調用而創建全新的數組。 – 2010-09-09 11:46:33

相關問題