我编写了下面的代码来删除ArrayList
对象中的一些元素,具体取决于一维数组中某些元素的匹配。但是将错误作为Non-negetive number required
加到行ArrayListTaskDetails.RemoveRange RemovePosition, 4
。但我所知道的是IndexOf()
在找到匹配时返回0 - based
索引,而-1
表示不匹配。那么为什么会出现错误?
代码:
For IndexSearch = Lbound(VMHArray) To Ubound(VMHArray)
Do Until ArrayListTaskDetails.IndexOf(VMHArray(IndexSearch), 0) <> -1
RemovePosition = ArrayListTaskDetails.IndexOf(VMHArray(IndexSearch), 0)
ArrayListTaskDetails.RemoveRange RemovePosition, 4
Loop
Next
答案 0 :(得分:1)
好吧,我的评论中的“没有意义”是错误的;我误读了这个例子。
以下是发生的事情:Do Until X
表示评估X,如果结果是 false ,则执行循环体。因此,IndexOf显然返回-1,“Until”条件的计算结果为false,循环体执行,RemovePosition等于-1。这解释了错误。