Error System.InvalidOperationException: 컬렉션이 수정되었습니다. 열거 작업이 실행되지 않을 수도 있습니다…
페이지 정보
본문
TreeView의 SelectedNodes를 제어할 때 foreach를 사용하며 아래와 같은 에러가 발생합니다.
System.InvalidOperationException: 컬렉션이 수정되었습니다. 열거 작업이 실행되지 않을 수도 있습니다.
컬렉션이 반복하는 도중에 항목을 추가하거나 삭제할 때 에러가 발생하는데요. 이는 인덱스가 없이 순차 실행될 때 내부 인덱스가 변경되어서 그렇습니다. 이런 경우에는 항목을 미리 빼두었다가 나중에 for 문을 역으로 실행해서 하나씩 삭제해야 합니다. 하지만, 이 방법은 복잡하고 번거롭기 때문에 아래와 같이 간단하게 처리할 수 있습니다.
internal static List<string> Items = new List<string>();
internal static void RemoveDummyValues()
{
Items.ToList().ForEach(x =>
{
Items.Remove(x);
});
}
딕셔너리도 동일하게 처리할 수 있습니다.
internal static Dictionary<string, string> Items = new Dictionary<string, string>();
internal static void ModifyDummyValues()
{
foreach(var item in Items.ToList())
{
Items[item.Key] = "Dummy";
}
}
개발자에게 후원하기
추천, 구독, 홍보 꼭~ 부탁드립니다.
여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~
감사합니다~
추천0 비추천0
- 이전글C# .NET Core 매크로 프로그램 만들기. (마우스 클릭 드래그 1부) 24.03.27
- 다음글C# .NET Core 매크로 프로그램 만들기. (조건 로직 만들기) 24.03.26
댓글목록
등록된 댓글이 없습니다.