嗨我試圖從arrayList中刪除所有可以被二整除的數字。問題是,一個元素被刪除後,我得到一個InvalidOperationException。InvalidOperationException在刪除arrayList中的元素後
private ArrayList RemoveDivTwo(ArrayList list) {
int count = 0;
foreach(int i in list){
if ((i > 2) && (i % 2 == 0)) {
list.RemoveAt(count);
}
count++;
}
return list;
}
我該如何解決這個問題,所以我wont't得到一個異常,並能夠由兩個去除整除的所有元素?
這是一個常見的。請記住,如果您正在使用「foreach」進行迭代,則無法在集合中添加/刪除項目。 –
如果你在想,爲什麼這是一個無效的操作,請閱讀這個http://stackoverflow.com/questions/1124221/modifying-collection-when-using-a-foreach-loop-in-c-sharp –
'ArrayList '不是首選的集合類型,除非您正在使用遺留1.1代碼。改爲使用['列表'](http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx)。使用'List '你的代碼可以被重寫爲'list.RemoveAll(i => i> 2 && i%2 == 0)' –