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
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (730)
      • 스마트팜 (1)
      • 상품 추천 (223)
      • DataBase (0)
        • MongoDB (4)
        • PostgreSQL (0)
      • 하드웨어 (19)
      • 일기장 (4)
      • 파이썬 (131)
        • Basic (42)
        • 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 (5)
      • 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)
  • 인기 글

  • 태그

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

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

티스토리툴바