0

ArrayList1D配列内のいくつかの要素の一致に応じて、オブジェクトからいくつかの要素を削除するために、以下のコードを記述しました。しかし、行に関してエラーが発生します。しかし、私が知っているのは、一致が見つかった場合と一致しない場合にインデックスを返すことです。では、なぜエラーが発生するのでしょうか。Non-negetive number requiredArrayListTaskDetails.RemoveRange RemovePosition, 4IndexOf()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
4

1 に答える 1

1

わかりました、私のコメントの「意味がありません」の部分は間違っていました。例を読み間違えました。

何が起こっているかを次に示します。Do Until Xつまり、Xを評価し、結果がfalseの場合は、ループ本体を実行します。したがって、IndexOfは明らかに-1を返し、「Until」条件はfalseと評価され、ループ本体が実行され、RemovePositionは-1に等しくなります。それがエラーの説明です。

于 2012-12-28T07:59:38.880 に答える