다음을 통해 공유


Hashtable.GetEnumerator 메서드

Hashtable을 반복하는 IDictionaryEnumerator를 반환합니다.

네임스페이스: System.Collections
어셈블리: mscorlib(mscorlib.dll)

구문

‘선언
Public Overridable Function GetEnumerator As IDictionaryEnumerator
‘사용 방법
Dim instance As Hashtable
Dim returnValue As IDictionaryEnumerator

returnValue = instance.GetEnumerator
public virtual IDictionaryEnumerator GetEnumerator ()
public:
virtual IDictionaryEnumerator^ GetEnumerator ()
public IDictionaryEnumerator GetEnumerator ()
public function GetEnumerator () : IDictionaryEnumerator

반환 값

Hashtable에 대한 IDictionaryEnumerator입니다.

설명

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를 호출하면 됩니다.

열거자는 컬렉션이 변경되지 않은 상태로 유지되는 한 유효합니다. 요소를 추가, 수정 또는 삭제하는 등 컬렉션을 변경하면 열거자가 더 이상 유효하지 않게 되며(복구할 수 없음) 해당 동작은 정의되지 않은 상태가 됩니다.

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

이 메서드는 O(1) 연산입니다.

Hashtable의 열거자를 serialize 및 deserialize하면 요소가 다시 정렬될 수 있기 때문에 Reset 메서드를 호출해야만 열거를 계속할 수 있습니다.

플랫폼

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

.NET Compact Framework

2.0, 1.0에서 지원

참고 항목

참조

Hashtable 클래스
Hashtable 멤버
System.Collections 네임스페이스
IDictionaryEnumerator
IEnumerator