假設我有一個數組int [] arr = {1,2,3,4}我可以在一行代碼中讀取數組嗎?
我想將其轉換爲字符串。 結果我想它是這樣的字符串a =「1,2,3,4」;
所以我可以做些什麼「string a = arr ....」來做到這一點,而不是寫一個for循環?
感謝
假設我有一個數組int [] arr = {1,2,3,4}我可以在一行代碼中讀取數組嗎?
我想將其轉換爲字符串。 結果我想它是這樣的字符串a =「1,2,3,4」;
所以我可以做些什麼「string a = arr ....」來做到這一點,而不是寫一個for循環?
感謝
string result = string.Join(", ", arr.Select(item => item.ToString()).ToArray());
可以使用的string.join:
int[] arr = new [] { 4, 5, 6, 7 };
string joined = String.Join(",", arr);
更多信息,請參見http://msdn.microsoft.com/en-us/library/57a79xd0.aspx。
隨着.NET 4中,你可以簡單地做:
var result = string.Join(",", arr);
在早期版本中,
var result = string.Join(",", arr.Select(a => a.ToString()).ToArray());
如果您不能使用.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();
}
}
+1 - 一個.NET 4.0程序員的例子,他不想爲了創建特定的API調用而創建全新的數組。 – 2010-09-09 11:46:33
除了你不需要在中間所有的東西。 String.Join將只與數組一起工作 – Josh 2010-09-09 01:44:24
@Josh:如果您使用的是.NET 4.0。 – 2010-09-09 01:49:42