오래된 Error Message 를 소개하고자 합니다. ^^;

 

"Collection was modified; enumeration operation may not execute."

 

위 Message 는 한글 에러로는

"컬렉션이 수정되었습니다. 열거 작업이 실행되지 않을 수도 있습니다." 라는 에러로 나타납니다.

 

foreach (VB.NET 의 경우 For Each) 문은 IEnumerable, IEnumerable<T> 를 구현한 배열이나 컬렉션의 요소들을 반복하여 접근하는 작업을 합니다만

For Each 반복과정에서 배열이나 Collection 의 변경이 생기는 경우 내부에서 사용하는 iterator 가 무효화 되어 사용할 수 없게되어 InvalidOperationException 이 발생하게 됩니다.

 

따라서 For Each 작업을 하기 위해서는 For 문을 사용하거나

반복에 사용할 대상을 미리 List 로 취합한뒤 그 List 를 대상으로 작업을 하시기 바랍니다.

 

 

행복한 고수되십시요.

 

woojja ))*

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

 




'.NET' 카테고리의 다른 글

[.NET] Time Zone Identifiers  (2) 2018.07.24
[.NET] Clone  (0) 2017.05.31
[.NET] Collection was modified; enumeration operation may not execute.  (4) 2017.05.30
[.NET] .NET Core Roadmap  (0) 2017.02.10
[.NET] Bit 연산에 대한 내용입니다.  (0) 2014.05.07
[.NET] Telerik Code Convertor  (0) 2014.05.07
Posted by woojja

댓글을 달아 주세요

  1. 2017.05.30 15:59

    ^^

    IEnumerator는 언제나 읽기 전용일까?
    ; http://www.sysnet.pe.kr/2/0/1308

  2. 2017.10.17 09:19

    안녕하세요?
    동일한 오류가 발생하여 문의합니다.
    저가 작업중인 웹서비스는 vb.net으로 개발된 것인데요.
    소스내에는 For Each 문은 사용하지 않았지만 컬랙션 수정, 열거작업이 안될수 있다는 오류메세지가 뜨면서 웹페이지가 죽어버립니다.
    해결방법이 궁금합니다.

    • 2017.10.17 09:35 신고

      코드를 보지 않고 뭐라 말씀드릴수는 없으나 ^^; 일단은 Post 에도 적었듯이 해당 IEnumerable, IEnumerable<T> 를 구현한 배열이나 컬렉션의 요소들을 List<T> 형태에 담아 사용해 보시기 바랍니다.