расщепление строки в VB - PullRequest
       1

расщепление строки в VB

1 голос
/ 28 сентября 2011

У меня есть ComboBox, который я назначаю переменной:

Dim var as String = ComboBox1.SelectedValue 
Dim name As String = var.Split(",")

Это дает мне ошибку

Значение типа '1-мерный массив строк' не может бытьпреобразован в строку

Есть идеи, где я ошибаюсь?

Ответы [ 5 ]

4 голосов
/ 28 сентября 2011

Split возвращает массив строк. Ваша переменная должна быть заменена массивом, а не просто строкой.

1 голос
/ 30 сентября 2011
 Dim var As String = ComboBox1.SelectedValue
 Dim temp() As String = Split(var, ",", -1, CompareMethod.Binary)
 Dim name As String = temp(0)
1 голос
/ 28 сентября 2011

Мой VB немного ржавый, но я думаю, вы должны сделать name массивом:

Dim name() As String = var.Split(",")
1 голос
/ 28 сентября 2011

имя должно быть объявлено как массив.

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. Передача самого массива не имеет смысла! Помните, что тип данных не равен массиву этого типа, это две разные вещи. Поэтому строка не совместима с массивом строк. Однако каждый отдельный элемент массива является строкой, и поэтому каждый из них совместим с строковым типом (потому что это одно и то же)!

0 голосов
/ 29 сентября 2011

Или, может быть, «имя» не является массивом, и цель состоит в том, чтобы заполнить «имя» всем до первой запятой, в этом случае исправление будет:

Dim name as String = var.Split(",")(0)

Примечание: предполагаетсяэтот вар не Ничто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...