“1维数组String”类型的值不能转换为“String”。 (BC30311)

时间:2012-10-28 20:55:42

标签: vb.net .net-4.0

我有这个代码会出错:

'declaration
Dim strFieldValues As String
'split
strFieldValues = strRecord.Split(",") 'field are separated by commas

2 个答案:

答案 0 :(得分:3)

嗯,这个错误对我来说似乎是不言自明的。您已声明了String类型的变量 - 即它可以包含String引用的值

Dim strFieldValues As String

然后,您尝试为从String.Split()返回的值指定一个值:

strFieldValues = strRecord.Split(",")

现在String.Split()会返回String 数组,而不是单个字符串值。

所以你有两个行动方案可供你使用:

  • strFieldValues更改为数组变量
  • 更改您指定给它的值

我的猜测是你想要第一个,但我们不知道你想要达到的目的。最简单的方法是组合声明和初始化:

Dim strFieldValues = strRecord.Split(",")

您可能还需要将参数更改为Split - 我不知道VB将如何解析该调用。

答案 1 :(得分:0)

如果您只想检索生成的字符串数组的任一侧,您可以像这样调用左侧或右侧部分:

strFieldValues = strRecord.Split(",")(0) ' Text to the left of the delimiter character

strFieldValues = strRecord.Split(",")(1) ' Text to the right of the delimiter character

当然,这假定分隔符确实存在,因此您应该采取必要的预防措施,以确保如果在您要分割的字符串中找不到所述字符,则不会遇到运行时异常。