NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    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";
        }
    }

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.