DictionaryBase.IEnumerable.GetEnumerator 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
를 IEnumerator 반복하는 값을 반환합니다 DictionaryBase.
virtual System::Collections::IEnumerator ^ System.Collections.IEnumerable.GetEnumerator() = System::Collections::IEnumerable::GetEnumerator;
System.Collections.IEnumerator IEnumerable.GetEnumerator();
abstract member System.Collections.IEnumerable.GetEnumerator : unit -> System.Collections.IEnumerator
override this.System.Collections.IEnumerable.GetEnumerator : unit -> System.Collections.IEnumerator
Function GetEnumerator () As IEnumerator Implements IEnumerable.GetEnumerator
반품
에 대한 항목 IEnumerator 입니다 DictionaryBase.
구현
설명
C# 언어의 foreach 문(Visual Basic for each)은 열거자의 복잡성을 숨깁니다. 따라서 열거자를 직접 조작하는 대신 사용하는 foreach 것이 좋습니다.
열거자는 컬렉션의 데이터를 읽는 데 사용할 수 있지만 기본 컬렉션을 수정하는 데 사용할 수는 없습니다.
처음에는 열거자가 컬렉션의 첫 번째 요소 앞에 배치됩니다. Reset 또한 열거자를 이 위치로 다시 가져옵니다. 이 위치에서 호출 Current 은 예외를 throw합니다. 따라서 값을 MoveNext읽기 전에 열거자를 컬렉션의 첫 번째 요소로 이동하도록 호출 Current 해야 합니다.
Current 는 호출될 때까지 동일한 개체를 MoveNextReset 반환합니다. MoveNext 는 다음 요소로 설정 Current 됩니다.
컬렉션의 끝을 전달하면 MoveNext 열거자가 컬렉션의 마지막 요소 뒤 위치에 배치되고 MoveNext 반환됩니다 false. 열거자가 이 위치에 있으면 후속 호출도 반환MoveNext합니다false. 반환MoveNext된 false 마지막 호출이 있으면 호출 Current 에서 예외가 throw됩니다. 컬렉션의 첫 번째 요소로 다시 설정 Current 하려면 다음Reset을 호출 MoveNext 할 수 있습니다.
컬렉션이 변경되지 않은 상태로 유지되는 한 열거자는 유효한 상태로 유지됩니다. 컬렉션에 요소를 추가, 수정 또는 삭제하여 변경이 발생하면, 열거자는 복구할 수 없게 무효화되며 다음에 MoveNext 또는 Reset을 호출할 때 InvalidOperationException 예외가 발생합니다. 컬렉션이 수정된 경우 MoveNextCurrentCurrent 열거자가 이미 무효화된 경우에도 컬렉션이 설정된 요소를 반환합니다.
열거자는 컬렉션에 대한 단독 액세스 권한이 없습니다. 따라서 컬렉션을 열거하는 것은 본질적으로 스레드로부터 안전한 프로시저가 아닙니다. 컬렉션이 동기화된 경우에도 다른 스레드는 컬렉션을 수정할 수 있으므로 열거자가 예외를 throw합니다. 열거 중 스레드 안전을 보장하기 위해 전체 열거 중에 컬렉션을 잠그거나 다른 스레드의 변경으로 인한 예외를 catch할 수 있습니다.
이 메서드는 작업입니다 O(1) .