가 할 경우반복하는 동안 컬렉션에서 항목 필드를 변경하면 컬렉션이 무효화됩니까?
foreach(var a in col) {
a.X = 1;
}
컬렉션을 통해 내 반복자는 무효가 될 것인가?
덕분에
가 할 경우반복하는 동안 컬렉션에서 항목 필드를 변경하면 컬렉션이 무효화됩니까?
foreach(var a in col) {
a.X = 1;
}
컬렉션을 통해 내 반복자는 무효가 될 것인가?
덕분에
아니요 컬렉션에있는 항목의 멤버에 액세스 할 수 있습니다. 귀하의 코드가 유효합니다.
반복 할 때 수행 할 수없는 작업은 반복하는 동안 컬렉션 자체를 수정하거나 항목을 추가하여 수정하는 것입니다.
문제가 발생하지 않아야합니다. col.Remove
또는 col.Add
을 수행하여 col
의 내용을 수정하려고 할 때만 문제가있을 것이라고 생각합니다. 변경 등 * * 수정 또는 요소를 삭제, 추가로 컬렉션을 변경하면 이 ", 열거가 복구 불가능 무효화하고 행동한다 : 문서에서이 문장 때문에
모두에게 감사 :) 나는 의심했다 정의되지 않았습니다. " – Vando
이 컨텍스트에서 'modification'은 컬렉션의 요소를 바꾸는 것을 의미합니다. –