【问题标题】:Convert Arraylist into string in vb.net在 vb.net 中将 Arraylist 转换为字符串
【发布时间】:2010-03-01 15:53:06
【问题描述】:

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

我有一个带有 ID 值的数组列表

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

我想把它转成字符串

Dim str as string=""
str="1,2,3"

【问题讨论】:

    标签: .net vb.net


    【解决方案1】:
    str = string.Join(",", arr.ToArray());
    

    如果你需要在string.Join之前将List转换为string[]你可以这样做

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

    所以...

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

    【讨论】:

      【解决方案2】:

      您可以通过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 的答案有何不同?将类型名称作为字符串传递并不是一种改进
      • 我的回答是显示两种方式这是不同的,无论两年四年过去了,很多人仍在寻找它,并且将永远存在。这与个人无关。
      • 没有说是 - 说这不是改进。实际上,应该不惜一切代价避免第二个,因为它会不必要地创建临时字符串,从而导致内存浪费和垃圾收集。这确实会损害服务器应用程序或处理大型阵列时的性能。至于第一种方法,它比第二种答案更糟糕,因为当您可以简单地使用 typeof(String) 时,您将类型作为字符串传递。
      【解决方案3】:

      作为答案here你可以试试:

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

      【讨论】:

        【解决方案4】:

        使用带逗号分隔符的 String.Join (http://msdn.microsoft.com/en-us/library/57a79xd0.aspx)

        【讨论】:

          猜你喜欢
          • 2019-09-04
          • 2012-04-28
          • 1970-01-01
          • 1970-01-01
          • 2011-09-13
          • 2015-07-22
          • 2014-09-19
          • 2014-05-16
          • 1970-01-01
          相关资源
          最近更新 更多