我寫了一個函數去槽列表和刪除列表項目,如果遇到一些條件。我的程序崩潰了,過了一段時間,我斷定outer for循環遍歷列表中的所有項目。 雖然在同一個例程中,項目列表可以變短。正確的方式循環低谷列表並刪除項目
// Lijst is a list of a struct that contains a value .scanned and .price
for (int i = 0; i < Lijst.Count; i++)
{
if (Lijst[i].scanned == false)
{
// (removed deletion of list item i here)
if (Lijst[i].price > (int)nudMinimum.Value)
{
Totaal++;
lblDebug.Text = Totaal.ToString();
}
Lijst.RemoveAt(i); //<-moved to here
}
}
現在我不知道什麼是正確的做到這一點,沒有得到索引超出範圍的錯誤。
運行從數環比0 –
還要注意的是'Lijst [I]'的'if'訪問_after_你只是刪除了一個元素。 – CompuChip
爲什麼其他方向的循環工作? – user3800527