안녕하세요, arrayList에서 2로 나눌 수있는 모든 숫자를 제거하려고합니다. 문제는 한 요소가 제거 된 후 InvalidOperationException이 발생한다는 것입니다.arrayList의 요소를 제거한 후 InvalidOperationException이 발생했습니다.
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;
}
나는이 문제를 내가 예외 얻고 2로 나누어 모든 요소를 제거 할 수 wont't를 해결할 수 있습니까?
이것은 일반적인 것입니다. 'foreach'를 사용하여 반복하는 경우 컬렉션에 아이템을 추가/제거 할 수 없다는 것을 기억하십시오. –
생각하시는 분은 왜이 부분이 잘못 되었습니까? 읽으십시오. http://stackoverflow.com/questions/1124221/modifying-collection-when-using-a-foreach-loop-in-c-sharp –
ArrayList '는 기존 1.1 코드로 작업하지 않는 한 선호하는 콜렉션 유형이 아닙니다. ['List'] (http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx)을 대신 사용하십시오. 'List '을 사용하면 코드를'list.RemoveAll (i => i> 2 && i % 2 == 0)'로 다시 쓸 수 있습니다. –