如何将List(Long)转换为字符串数组? (VB)

时间:2009-10-26 17:17:24

标签: vb.net

我想将List(Long)转换为字符串数组。

原因:它是一个数据库ID列表,我想用逗号分隔的字符串传递给存储过程。

我试过了:

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

但我显然没有正确使用Cast,因为它会引发异常: System.InvalidCastException:无法将“System.Int64”类型的对象强制转换为“System.String”..

有没有办法让Cast为此工作,还是我坚持使用ConvertAll和委托函数?

3 个答案:

答案 0 :(得分:8)

如果你可以使用LINQ,这将做你想要的:

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

答案 1 :(得分:3)

无法强制转换 - 除非您能使用LINQ,否则必须将每个int转换为字符串,以便拥有一个字符串数组    CLR 2.0有一个ConvertAll()方法,可以做到这一点......

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

答案 2 :(得分:2)

我意识到我可以使用带有lambda函数的ConvertAll将它保存在一条线上,所以我认为这是我的解决方案:

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