【问题标题】:list of integer to comma delimited string整数列表到逗号分隔的字符串
【发布时间】:2012-08-22 07:10:37
【问题描述】:

我已经尝试了几种方法,每次尝试都会出错。

这是使用带有 asp.net(forms) 和 vb.net 的 .net 3.5。

例子:

Dim _registrations = New List(Of Integer)

Dim regList As String

Dim ListOfReg = _registrations.convertall(Of String)(Function(i As Integer) i.ToString())

regList = String.Join(",", ListOfReg.ToArray())

错误信息:

Overload resolution failed because no Public 'convertall' can be called with these arguments: 'Public Function ConvertAll(Of String)(converter As System.Converter(Of Integer,String)) As System.Collections.Generic.List(Of String)': Argument matching parameter 'converter' cannot convert from 'VB$AnonymousDelegate_0(Of Integer,String)' to 'Converter(Of Integer,String)'.

其他尝试:

regList = String.Join(",", (_registrations.Select(Function(reg) reg.ToString()).ToArray()))

错误信息:

Public member 'Select' on type 'List(Of Integer)' not found.

感谢任何帮助。

谢谢。

【问题讨论】:

  • 尝试在 vb 文件顶部添加“Imports System.Linq”,看看是否仍有错误。
  • 添加后我仍然得到这两个错误。
  • 我改变了答案,新的解决方案应该适用于 3.5。
  • 再想一想,您的“其他尝试”没有任何问题,对我来说效果很好。很抱歉收到垃圾邮件。
  • 一旦我将变量移动到它工作的函数范围内,由于它是类中的私有变量,似乎存在范围问题。谢谢。

标签: asp.net vb.net .net-3.5


【解决方案1】:

这应该可以,我猜是选择中的方括号?

.NET 3.5 解决方案

Dim integers As List(Of Integer) = New List(Of Integer)
integers.Add(1)
integers.Add(2)
integers.Add(3)

Dim commas As String = String.Join(",", integers.[Select](Function(i) i.ToString()).ToArray())

MessageBox.Show(commas)

下面是.NET 4.0解决方案

Dim integers As List(Of Integer) = New List(Of Integer)
        integers.Add(1)
        integers.Add(2)
        integers.Add(3)


        Dim commas As String = String.Join(",", integers.ToArray)

        MessageBox.Show(commas)

【讨论】:

  • 您仍然需要转换字符串中的整数,String.Join 只接受字符串数组 - MSDN
  • 无法将“System.Int32[]”类型的对象转换为“System.String[]”类型。
  • 我用严格的选项和明确的选项运行了上面的代码,你失败了吗?
  • @MSDN - Matthieu - 可能想要检查那一点信息。有一个重载接受一个似乎可以很好地完成工作的 Object[] 数组,因为我编写了与 PatFromCananda 分离出来的几乎相同的片段(尽管在 C# 中),并且它工作得很好......根据 MSDN,那个特别重载只是针对数组中的每个对象调用 ToString() 方法...
  • @DavidW :该重载仅出现在 net4.0+ 中。它不适用于 OP。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-10
  • 2015-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多