假設我有一個名爲gridFiles
的DataGridView。在DataGridViewRow上使用Remove移除每隔一行其他行
For Each row as DataGridView in gridFiles.Rows
MsgBox(row.Cells("somekey").Value.ToString)
gridFiles.Rows.Remove(row)
Next
我會看到消息框,但只能看到每隔一行。我認爲發生的事情是gridFiles.Rows
的內部指針下降,因爲在下一次迭代中只有1行。
我需要迭代每一行,並有條件地決定是否刪除它們(基於另一個操作的成功或失敗)。
我該如何解決這個問題?
:o)馬格努斯寫了一個很好的演示,我剛剛解釋過。 – 2011-06-13 21:07:57
我很驚訝沒有拋出異常。 – 2011-06-14 18:26:06
序列中沒有單獨的命令本身是「壞」的。問題在於操作順序。如果你看看Magnus提供的第二個例子,如果你不向後迭代,你會得到一個異常,因爲'i'將會超過實際的索引。 – 2011-06-15 02:39:48