【问题标题】:How to join elements of an ArrayList converting it to a string representation?如何连接 ArrayList 的元素,将其转换为字符串表示形式?
【发布时间】:2026-02-02 11:30:01
【问题描述】:

我有一个 ArrayList 并将它的所有元素与我正在使用的一个字符串中的分隔符连接起来......

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

但是,我会知道是否有更智能/更短的方法来获得相同的结果, 或者看起来更好的相同代码...

提前谢谢你,

最大

【问题讨论】:

  • 您为什么使用 ArrayList 而不是通用集合?

标签: .net vb.net arrays string arraylist


【解决方案1】:

在 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 中引入的。
【解决方案2】:

我知道这是一个老问题,但由于我今天必须自己解决这个问题,所以我想我会发布我想出的 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

【讨论】:

    【解决方案3】:

    我会将其作为ArrayList 的扩展方法,例如

    public static string ToCsv(this ArrayList array)
    {
        return String.Join(",", TryCast(array.ToArray(GetType(String)), String()))
    }
    

    用法

    string csv = myArrayList.ToCsv();
    

    【讨论】: