在vb.net中将ArrayList转换为字符串

4

如何在vb.net中将ArrayList转换为逗号分隔的字符串

我有一个包含ID值的ArrayList。

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

我想将它转换为字符串。

Dim str as string=""
str="1,2,3"
4个回答

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

如果您需要在使用string.Join之前将List转换为string[],可以执行以下操作:
Array.ConvertAll<int, string>(str.ToArray(), new Converter<int, string>(Convert.ToString));

So...

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

4
你可以通过 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)

这与两年前被接受的答案或@Redips77的答案有何不同?将类型名称作为字符串传递并没有改进。 - Panagiotis Kanavos
我的答案展示了两种方式,这就是它们的区别。无论已经过去了两年还是四年,许多人仍在寻找它,并将永远如此。这不是关于个人的问题。 - Muhammad Saqib
1
并没有说这不是改进 - 实际上第二种方法应该尽量避免,因为它会不必要地创建临时字符串,导致内存浪费和垃圾回收。这将在服务器应用程序或处理大型数组时真正影响性能。至于第一种方式,它比第二个答案更糟糕,因为你传递的类型是一个字符串,而你可以简单地使用 typeof(String) - Panagiotis Kanavos

1
作为答案,您可以尝试使用这里
Dim s As String = String.Join(",", TryCast(arr.ToArray(GetType(String)), String()))

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接