예외 발생: 'System.InvalidOperationException'(mscorlib.dll) 컬렉션이 수정되었습니다. 열거 작업이 실행되지 않을 수도 있습니다.

우롱밀크티당도70·2024년 9월 9일
0

C#

목록 보기
3/3
post-custom-banner

1. 배경

예외, 에러 해결


2. 개발환경

  • VisualStudio 2022 / WPF 애플리케이션(.NET Framework 4.7.2)

3. 내용

코드 작성 후 실행 중 전혀 문제가 없어보이던(라고 생각한) 부분에서 예외가 발생했다.

예외 발생: 'System.InvalidOperationException'(mscorlib.dll)
컬렉션이 수정되었습니다. 열거 작업이 실행되지 않을 수도 있습니다.

찾아보니 내 경우는 Collection을 foreach로 접근 중일때 Remove나 Add 등의 동작으로 Collection을 변경하려고 했기 때문에 발생하는 예외라고 한다.

ObservableCollection<string> tempCollection = new ObservableCollection<string>();

foreach (string item in tempCollection) 
{
	...
}

이 때의 해결 방법은
1. foreach가 아닌 for문으로 순회한다.
2. 해당 Collection의 복사본을 만든다. (ToList())

2번의 방법으로 해결했다.

foreach (var item in tempCollection.ToList()) 
{
	...
}

또는 복사본을 이렇게도 만들 수 있겠다.

ObservableCollection<string> tempCollection = new ObservableCollection<string>();

ObservableCollection<string> tempCopyCollection = new ObservableCollection<string>(tempCollection);

4. 결과

문제 해결

profile
안뇽하세용
post-custom-banner

0개의 댓글