ArrayList
300以上のレコードで埋め尽くされているVB.Netで使用しています。それらを処理するときに、順番に保存されていないため、指定されたインデックスのレコードを削除します。私の問題は、Arraylist
使用する前のカウントを最初に見るRemoveAt()
と373と表示されますが、数RemoveAt()
回使用した後、カウントが425前後に上がることに気づきました。
のMSDNリファレンスページの理解から、ArrayList.RemoveAt()
メソッドは指定されたインデックスの要素を削除し、ArrayList
カウントを1つ減らす必要があります。
誰かがこの問題に遭遇したか、なぜそれがこれをしているのかについて何か手がかりがあれば、私に知らせてください。
arraylistの各要素を更新すると、オブジェクトのインスタンスになります。
これを更新するのは、配列リスト内で抽出して削除する要素を見つけるコードです。
While (SimsRun.Count > 0)
counter = 0
'Get a new record
While (counter < SimsRun.Count)
tempSim = SimsRun(counter)
If tempSim.BatchIndex = (simToFind - 1) Then
SimsRun.RemoveAt(counter)
Exit While
End If
counter = counter + 1
End While
Process Record
.
.
.
.
End While
これが含まれる外側のループは、SimsRun.Count()>0のときに実行されます。