在未分配从文件读取的数组值中循环

时间:2019-02-27 19:02:24

标签: arrays vb.net for-loop streamreader

我遇到了一个我根本无法理解的问题,因为这没有意义。我正在从包含数字的输入记事本文件中读取值。对于每行,将由空格(“”)分隔的数字分配给文本框。在阅读时,除一种特殊情况外,我的所有行都工作正常。

此案例包含2个数字,每个数字代表一种特定类型的商品的数字。代码现在是这样的:

While Not filereader.EndofStream
  Dim NumberofItems = {NumType1, NumType2}
  Dim currentline As String
  currentline = filereader.ReadLine()
  currentline = currentline.Trim(" "c)
  Dim InputArray() As String = currentline.Split(" "c)

  ...... 'Other lines being read correctly

  For i=0 to Math.Min(NumberofItems.Length -1, InputArray.Length -1)
     NumberofItems(i).Text = InputArray(i)
  Next
End While

这只会正确分配数组的第一个值(两个中的一个)。但是,如果我将其更改为:

NumberofItems(0).Text = InputArray(0)
NumberofItems(1).Text = InputArray(1)

它工作得非常好,我不明白,因为这本质上是循环,但是时间更长。 我已经重新检查了文本框名称和输入文件,已经检查了.Lengths的值以及Math.Min的返回值-它们都是正确的。我什至将循环替换为:

For i=0 to 1 'Since I know there are only two numbers
       NumberofItems(i).Text = InputArray(i)
Next

这仍然不起作用。

有人对我可能在这里做错的事情有任何想法吗/为什么这不起作用?我将不胜感激!

0 个答案:

没有答案