如何在循环中迭代动态大小的数组

时间:2013-12-17 17:44:38

标签: arrays vb.net loops dynamic for-loop

我正在使用VB.NET。

我想要一个名为A1的数组,我将在该数组中执行循环。

  1. 在for循环的中间,我需要从该A1数组中删除一个项目。
  2. 我知道如果从A1数组中删除该对象,程序将崩溃(越界错误消息)。
  3. VB.NET中的哪个数组变量可以让我执行上面的任务?

    最受欢迎的代码示例!

    谢谢。

1 个答案:

答案 0 :(得分:2)

最简单的方法是使用列表而不是数组(或将您拥有的数组转换为List(of T)。 然后诀窍是从列表的末尾移动到前面而不是相反。 例如:

Sub Main()
    Dim RndGenerator as New Random
    Dim a As New List(Of Double)
    For i = 0 To 99
        a.Add(RndGenerator.NextDouble() * 10) 'Populate the list
    Next
    For i = a.Count - 1 To 0 Step -1  'This loop performs the deletion.
        If a(i) > 5 Then a.RemoveAt(i)
    Next
    Console.ReadKey() 'Or debugger.Break to look at the result
End Sub

这将使用0到10之间的随机数填充列表。然后从列表中删除所有数字> 5.

编辑:

Steven Doggart关于不使用VB6 Relics的好点。编辑代码以改为使用System.Random类。