2009-10-26 52 views
5

我想將List(of Long)轉換爲字符串數組。如何將List(Long)轉換爲字符串數組? (VB)

原因:這是一個數據庫ID的列表,我想要逗號分隔的字符串傳遞到存儲過程。

我嘗試這樣做:

Dim commaDelimitedList As String = String.Join(",", itemIDList.Cast(Of String)().ToArray) 

,但我顯然不是正確使用Cast,因爲它拋出一個異常: System.InvalidCastException:無法投類型「System.Int64」的對象鍵入'System.String'..

有沒有辦法讓Cast爲此工作,還是我堅持使用ConvertAll和委託函數?

回答

8

如果你可以使用LINQ這會做你想要什麼:

Dim commaDelimitedList As String = String.Join(",", itemIDList.Select(Function(itemID) itemID.ToString()).ToArray()) 
+0

完美的感謝 - 我在30秒後得出同樣的結論! – elwy 2009-10-26 17:33:55

3

不能投 - 除非你能LINQ,你必須每個詮釋轉換爲字符串,所以你有一個字符串 CLR 2.0具有ConvertAll()方法,將做到這一點的數組...

string s = String.Join(",", 
       l1.ConvertAll<string>(delegate(int i) 
       { return i.ToString(); }).ToArray()); 
2

我意識到,我可以使用ConvertAll是lambda功能,以保持它均能在同一行,所以我覺得這是我的解決方案:

Dim commaDelimitedList As String = _ 
String.Join(",", itemIDList.ConvertAll(New Converter(Of Long, String)(Function(i As Long) CStr(i))).ToArray) 
相關問題