如何加入ArrayList中的元素并将其转换为字符串表示形式?

3

我有一个ArrayList,想要使用分隔符将其中所有元素连接成一个字符串,我使用的方法是...

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

然而,我想知道是否有更聪明/更简短的方法来获得相同的结果,或者相同的代码看起来更好一些...感谢您提前。Max

2
你使用 ArrayList 而不是通用集合的原因是什么? - Jon Skeet
3个回答

4
在 Framework 4 中,这非常简单:
var s = string.Join(",", myArrayList);

在3.5版本中,使用LINQ扩展方法:

var s = string.Join(",", myArrayList.Cast<string>().ToArray());

这些代码很短,但并不是更聪明。

我不知道它们应该如何用VB.NET编写。


"String.Join(String, Object[])" 是在 .NET Framework 4 中引入的。 - mgronber

3

我知道这是一个老问题,但由于今天我不得不自己解决这个问题,所以我想发布我想出来的VB.Net解决方案:

Private Function MakeCsvList() As String
  Dim list As New List(Of String)
  list.Add("101")
  list.Add("102")

  Return Strings.Join(list.ToArray, ",")
End Function

2
我会将其作为 ArrayList 的扩展方法,例如:
public static string ToCsv(this ArrayList array)
{
    return String.Join(",", TryCast(array.ToArray(GetType(String)), String()))
}

用法

string csv = myArrayList.ToCsv();

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