对数组使用.Substring命令?

时间:2014-03-17 15:39:23

标签: vb.net

我目前正在编写一些代码,它应该读取一个文件并将每一行放入一个数组(可行),然后使用.Substring命令将数组中的每一行拆分为两个变量(ID和名称)。

我认为我的工作方式可行,但我总是收到错误 - The ID varible is being used before having a value

'Puts every line from file in array
Dim lines As String() = File.ReadAllLines(cleanfile)

Dim ID As String()
Dim NAME As String()

'Supposed to substring every line and split it in ID and NAME 
'( ID(1) from lines(1), ID(2) from lines(2), etc. )
'Error starts here for ID and NAME
ID(1 - 40) = lines(1 - 40).Substring(0, 7)
NAME(1 - 40) = lines(1 - 40).Substring(30, 60)

我错过了什么?或者语法中是否有错误?

1 个答案:

答案 0 :(得分:0)

您无法按照您尝试的方式索引数组范围。当你写lines(1 - 40)时,它没有做到#34;第一到第四行" - 它正在做"行减去三十九。"

您的错误出于类似的原因:您似乎正在尝试创建和设置数组值"一到四十,"但实际上这是试图将价值减去三十九。"既然您还没有设置 ID,那么您就无法做到这一点:没有阵列!

你真正需要的是一个循环,它将依次占用每一行并处理它。幸运的是,使用Linq,循环被抽象掉了,代码可以更简单。 最简单的方法是:

Dim ID as String()

ID = lines.Select(Function (l as String) As String
                      return l.SubString(0, 7)
                  End Function).ToArray()