我在VB.Net中使用了一個ArrayList
,它正在填充300多條記錄。當我處理它們時,我刪除了指定索引處的記錄,因爲它們沒有按順序存儲。我的問題是,當我第一次看Arraylist
的計數我使用之前RemoveAt()
伯爵說373,但使用RemoveAt()
一對夫婦的時間後,我發現了數去周圍425使用.NET ArrayList .RemoveAt()不重新計算正確的計數
從我在MSDN的理解參考頁面ArrayList.RemoveAt()
,該方法應刪除指定索引處的元素,並將計數減1。
如果有人遇到這個問題或有任何線索,爲什麼它這樣做,請讓我知道。
更新 arraylist中的每個元素都是對象的一個實例。
更新這是找到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
這不應該發生(除非別的東西在添加元素)。你能顯示重現行爲的代碼嗎? –
需要一個SSCCE(http://SSCCE.org) –
那麼該計劃是如此複雜,我不能發送只顯示它的地方。但是我可以包含刪除指定位置元素的代碼部分。再有問題讓我知道。 – Jared