2010-03-01 80 views
3

字符串如何轉換一個ArrayList爲逗號delimated值的字符串在vb.net轉換成ArrayList的在vb.net

我有一個ID一個ArrayList值

arr(0)=1 
arr(1)=2 
arr(2)=3 

我想轉換它轉換成字符串

Dim str as string="" 
str="1,2,3" 

回答

6
str = string.Join(",", arr.ToArray()); 

如果你需要的string.join你可以之前的列表轉換爲字符串[]不要

Array.ConvertAll<int, string>(str.ToArray(), new Converter<int, string>(Convert.ToString)); 

所以......

str = string.Join(",", Array.ConvertAll<int, string>(str.ToArray(), new Converter<int, string>(Convert.ToString))); 
1

的答案here你可以試試:

Dim s As String = String.Join(",", TryCast(arr.ToArray(GetType(String)), String())) 

希望這有助於,如果它確實請投票。

1

你可以簡單地實現它從GetTypeJoin函數。

Dim S = YourArrayList.ToArray(Type.GetType("System.String")) 
MessageBox.Show(String.Join(",", S)) 

的另一種方法是使用FOR EACH聲明在一個分隔的字符串來讀取,並通過一個陣列一個的每個項存儲。 (但不推薦)

Dim S as string = "" 
For Each item As String In YourArrayList 
    S &= item & ", " 
Next 
MessageBox.Show(S) 
+0

這與兩年前接受的答案或@ Redips77的答案有什麼不同?以字符串形式傳遞類型名稱並不是一種改進 – 2014-12-23 16:16:20

+0

我的答案顯示了兩種方式,這是差別,無論二,四年過去了,許多人仍在尋找它並將永遠存在。這不是關於個人。 – 2014-12-23 17:44:01

+1

沒有說這是 - 說這不是一個改進。其實第二個應該不惜一切代價避免,因爲它會不必要地創建臨時字符串,導致內存浪費和垃圾回收。這將嚴重影響服務器應用程序或處理大型數組時的性能。至於第一種方法,它比第二種答案更糟糕,因爲當你可以簡單地使用'typeof(String)'的時候,你將該類型作爲字符串傳遞。 – 2014-12-24 08:20:17