Collection was modified: enumeration operation may not execute

2023. 4. 16. 15:44·C#
반응형
C#에서 Collection was modified: enumeration operation may not execute 이 에러는 컬렉션을 열거하고 있을 때, 컬렉션을 수정하려고 할 때 발생하는 에러입니다. 이 에러는 foreach 루프를 사용할 때 주로 발생하는데, foreach 루프를 사용하면 컬렉션의 요소를 읽기만 할 수 있습니다. 따라서 컬렉션을 수정하려고 하면, 이 에러가 발생합니다.

이 에러를 해결하는 방법

1. for 루프 사용

foreach 루프 대신 for 루프를 사용하면, 컬렉션을 수정할 수 있습니다.

List<int> numbers = new List<int>() { 1, 2, 3, 4, 5 };
for (int i = 0; i < numbers.Count; i++)
{
    if (numbers[i] == 3)
    {
        numbers.RemoveAt(i);
    }
}

2. 새로운 컬렉션 생성

컬렉션을 수정하기 전에, 새로운 컬렉션을 생성하고 수정 작업을 수행한 후, 기존 컬렉션을 새로 생성된 컬렉션으로 대체하는 방법입니다.

List<int> numbers = new List<int>() { 1, 2, 3, 4, 5 };
List<int> newNumbers = new List<int>();
foreach (int number in numbers)
{
    if (number != 3)
    {
        newNumbers.Add(number);
    }
}
numbers = newNumbers;

3. ToList() 사용

컬렉션을 ToList() 메서드를 사용하여 새로운 리스트로 복사한 후, 수정 작업을 수행하고 다시 기존 컬렉션으로 대체하는 방법입니다.

List<int> numbers = new List<int>() { 1, 2, 3, 4, 5 };
List<int> newNumbers = numbers.ToList();
foreach (int number in numbers)
{
    if (number == 3)
    {
        newNumbers.Remove(number);
    }
}
numbers = newNumbers;

결론

Collection was modified; enumeration operation may not execute 이 에러를 해결하는 방법은 다양하지만, 가장 적절한 방법은 상황에 따라 다릅니다. 따라서, 이 에러가 발생하면, 상황에 따라 적절한 방법을 선택하여 해결해야 합니다.

저작자표시 비영리 변경금지 (새창열림)

'C#' 카테고리의 다른 글

C# 추상 클래스란?  (1) 2023.04.19
C# : LINQ  (0) 2023.04.18
C# 프로퍼티  (0) 2023.04.16
C# 반복문 : while  (0) 2023.04.15
C# 비트연산  (0) 2023.04.14
'C#' 카테고리의 다른 글
  • C# 추상 클래스란?
  • C# : LINQ
  • C# 프로퍼티
  • C# 반복문 : while
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • MongoDB (4)
      • 하드웨어 (17)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    셀레니움
    유니티
    리뷰관리
    카페24리뷰
    스크립트 실행 순서
    programming101
    appdevelopment
    C#
    learntocode
    programmerlife
    믈레코비타멸균우유
    라떼우유
    list
    파이썬
    리스트
    상품 리뷰 크롤링
    리뷰이관
    codingcommunity
    긴유통기한우유
    ipcamera
    cv2
    스마트스토어리뷰
    쇼핑몰리뷰
    devlife
    unity
    codingtips
    스크립트 실행
    카페24리뷰이관
    rtsp
    Python
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
Collection was modified: enumeration operation may not execute
상단으로

티스토리툴바