我有一个ComboBox,我将其分配给变量:
Dim var as String = ComboBox1.SelectedValue
Dim name As String = var.Split(",")
这给了我错误
类型'1维数组字符串'的值无法转换为字符串
关于我哪里出错的任何想法?
答案 0 :(得分:4)
Split返回数组字符串。您的变量需要更改为数组,而不仅仅是单个字符串。
答案 1 :(得分:1)
name需要声明为数组。
dim name() as string = var.split(",")
split()方法将根据给定的字符拆分字符串,并将每个新创建的字符串放入一个数组中并返回它。
这是您的错误消息告诉您的信息:
Value of type '1-dimensional array of string' cannot be converted to String
该方法返回一个字符串数组,但是你试图将它放入一个字符串中!
编辑:回答您的回答......
到目前为止,您已设法使用split方法自行拆分字符串。要将其输出到消息框,您需要按正确的顺序连接这两个元素:
msgbox(name(1) & " " & name(0))
注意我将数组编入索引两次!元素1是第一个名称,元素0是姓氏。记住你的名字是lname,fname格式。传递阵列本身没有意义!请记住,数据类型不等于该类型的数组,它们是两个不同的东西。因此,字符串与字符串数组不兼容。但是,数组的每个单独元素都是一个字符串,因此每个元素都与字符串类型兼容(因为它们是相同的东西)!
答案 2 :(得分:1)
我的VB有点生疏,但我认为你必须让name
成为一个数组:
Dim name() As String = var.Split(",")
答案 3 :(得分:1)
Dim var As String = ComboBox1.SelectedValue
Dim temp() As String = Split(var, ",", -1, CompareMethod.Binary)
Dim name As String = temp(0)
答案 4 :(得分:0)
或许“name”不是一个数组,目标是在第一个逗号之前填充“name”,在这种情况下修复将是:
Dim name as String = var.Split(",")(0)
注意:假设var不是Nothing。