我有一个数组说:VMHArray=(12,22,34,4)现在有另一个Arraylist对象说ArrayListTaskDetails将数据保存为(12,55,44,4,12,22,21,107,43,22,34)现在下面的代码我写信从列表中删除列表ArrayListTaskDetails中不存在的项目VMHArray。
码
Dim Flag : Flag = true
Dim Counter
For IndexSearch = 0 To ArrayListTaskDetails.Count - 1 step 4
Counter = 0
Do while Flag
If VMHArray(Counter) <> ArrayListTaskDetails (IndexSearch) Then
ArrayListTaskDetails.RemoveRange IndexSearch, 4
Flag = False
End If
Counter = Counter + 1
Loop
Next
Run Code Online (Sandbox Code Playgroud)
现在,假设在找到一个匹配项IndexSearch = 0,那么根据它会删除位置上的元素0,1,2,3-很好。但是由于移除并ArrayList通过功能使对象连续,其他元素将4向左移动。现在问题For Loop已经增加了4,因此将从下一个迭代开始location 4。因此,现在0 location数组列表中的新元素再也没有机会测试与VMHArray数组元素的相等性。如果我们可以将For …