예외, 에러 해결
코드 작성 후 실행 중 전혀 문제가 없어보이던(라고 생각한) 부분에서 예외가 발생했다.
예외 발생: '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);
문제 해결