정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

IEnumerable.GetEnumerator 메서드

2013-12-13

컬렉션 전체에서 반복되는 열거자를 반환합니다.

Namespace:  System.Collections
어셈블리:  mscorlib(mscorlib.dll)

IEnumerator GetEnumerator()

반환 값

형식: System.Collections.IEnumerator
컬렉션을 반복하는 데 사용할 수 있는 IEnumerator 개체입니다.

[Visual Basic, C#]

C# 언어의 foreach 문(Visual Basic에서는 For Each)은 열거자를 덜 복잡하게 표시합니다. 따라서 열거자를 직접 조작하는 것보다는 foreach를 사용하는 것이 좋습니다.

열거자는 컬렉션에 있는 데이터를 읽는 데 사용할 수 있지만 내부 컬렉션을 수정하는 데에는 사용할 수 없습니다.

초기에 열거자는 컬렉션의 첫 번째 요소 앞에 위치합니다. Reset 메서드 또한 열거자를 이 위치로 다시 가져옵니다. 이 위치에서는 Current 속성이 정의되지 않습니다. 따라서 Current의 값을 읽기 전에 MoveNext 메서드를 호출하여 열거자를 해당 컬렉션의 첫 번째 요소로 보내야 합니다.

Current에서는 MoveNext 또는 Reset이 호출될 때까지 동일한 개체를 반환합니다. MoveNextCurrent를 다음 요소로 설정합니다.

MoveNext가 컬렉션의 끝을 지나면 열거자는 컬렉션의 마지막 요소 뒤에 배치되고 MoveNextfalse를 반환합니다. 열거자가 이 위치에 있는 경우 MoveNext에 대한 후속 호출 또한 false를 반환합니다. MoveNext에 대한 마지막 호출에서 false가 반환된 경우 Current는 정의되지 않습니다. Current를 해당 컬렉션의 첫 번째 요소로 다시 설정하려면 Reset을 호출한 다음 MoveNext를 호출하면 됩니다.

컬렉션이 변경되지 않는 한 열거자는 계속 유효합니다. 요소를 추가하거나 수정하거나 삭제하는 경우와 같이 컬렉션이 변경되는 경우 열거자는 복구 불능의 무효 상태가 되고 해당 동작이 정의되지 않습니다.

열거자는 컬렉션에 독점적으로 액세스할 수 있는 권한이 없으므로 컬렉션을 열거하는 프로시저는 기본적으로 스레드로부터 안전하지 않습니다. 열거하는 동안 스레드로부터 안전하게 보호하려면 열거하는 동안 컬렉션을 잠글 수 있습니다. 여러 스레드에서 컬렉션에 액세스하여 읽고 쓸 수 있도록 허용하려면 사용자 지정 동기화를 구현해야 합니다.

Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

표시: