vb.net将数组元素转换为字符串

时间:2013-08-20 12:12:51

标签: arrays vb.net string

使用下面的代码循环遍历我的数组,该数组是通过读取包含10行左右的文本文件而创建的,因此数组中的每个内容都是文本文件中的其中一行

Dim myarray As Array
myarray = Split(stringfromtextfile, vbCrLf)
For each element in myArray
MgBox(element)
Dim splititem As String = Split(element, "\")

消息框显示我正在预期的行,但当我尝试将其拆分时,我得到错误:

错误1'1维数组String'类型的值无法转换为'String'。

如何将消息框中显示的值转换为字符串,然后我可以对其进行拆分?

干杯!

2 个答案:

答案 0 :(得分:3)

这行代码无效:

Dim splititem As String = Split(element, "\")

Split function返回一个字符串数组,但您尝试将结果分配给仅代表一个字符串的变量。

这就是错误消息告诉你的:“类型的'1维数组String'的值”是从Split函数返回的内容,并且“无法转换为'String' “为了将其存储在splititem变量中。

将其更改为如下所示(注意括号,表示字符串的数组):

Dim splititem As String() = Split(element, "\")

并且强烈考虑使用.NET Framework方法进行字符串操作,而不是旧的VB 6方法。它们主要是为了与旧代码的兼容性而提供的,不适用于新代码。

如果你实际 编写VB 6代码(这就是它的样子),而不是VB.NET代码,则不能在声明时指定变量。您需要将它们拆分为单独的语句:

Dim splititem As String()
splititem = Split(element, "\")

答案 1 :(得分:2)

我会使用.NET方法而不是VB6方法,这些方法不是强类型的,因此效率较低,而且更重要 - 容易出错且可读性较差。

例如使用LINQ:

Dim first10LineFields = From line In System.IO.File.ReadLines(path)
                        Let fields = line.Split("\"c)
                        Select fields
                        Take 10

输出:

For Each lineFields  As String() In first10LineFields 
    Dim fieldsCommaSeparated = String.Join(",", lineFields)
    MessageBox.Show(fieldsCommaSeparated)
Next