Dictionary<TKey,TValue>.Enumerator Dictionary<TKey,TValue>.Enumerator Dictionary<TKey,TValue>.Enumerator Dictionary<TKey,TValue>.Enumerator Struct

정의

Dictionary<TKey,TValue>의 요소를 열거합니다.Enumerates the elements of a Dictionary<TKey,TValue>.

public: value class Dictionary<TKey, TValue>::Enumerator : System::Collections::Generic::IEnumerator<System::Collections::Generic::KeyValuePair<TKey, TValue>>, System::Collections::IDictionaryEnumerator
[System.Serializable]
public struct Dictionary<TKey,TValue>.Enumerator : System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<TKey,TValue>>, System.Collections.IDictionaryEnumerator
type Dictionary<'Key, 'Value>.Enumerator = struct
    interface IEnumerator<KeyValuePair<'Key, 'Value>>
    interface IDictionaryEnumerator
    interface IDisposable
    interface IEnumerator
Public Structure Dictionary(Of TKey, TValue).Enumerator
Implements IDictionaryEnumerator, IEnumerator(Of KeyValuePair(Of TKey, TValue))

형식 매개 변수

TKey
TValue
상속
Dictionary<TKey,TValue>.EnumeratorDictionary<TKey,TValue>.EnumeratorDictionary<TKey,TValue>.EnumeratorDictionary<TKey,TValue>.Enumerator
특성
구현

설명

합니다 foreach C# 언어의 (for each c + +에서는 For Each Visual basic에서) 열거자의 복잡성을 숨깁니다.The foreach statement of the C# language (for each in C++, For Each in Visual Basic) hides the complexity of enumerators. 그러므로 열거자를 직접 조작하는 대신 foreach를 사용하는 것이 좋습니다.Therefore, using foreach is recommended, instead of directly manipulating the enumerator.

열거자를 사용하여 컬렉션의 데이터를 읽을 수는 있지만 내부 컬렉션을 수정할 수는 없습니다.Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.

처음에 열거자는 컬렉션의 첫 번째 요소 앞에 배치됩니다.Initially, the enumerator is positioned before the first element in the collection. 이 위치에서 Current는 정의되지 않습니다.At this position, Current is undefined. 호출 해야 합니다 MoveNext 하는 열거자의 값을 읽기 전에 컬렉션의 첫 번째 요소를 Current입니다.You must call MoveNext to advance the enumerator to the first element of the collection before reading the value of Current.

CurrentMoveNext가 호출될 때까지 동일한 개체를 반환합니다.Current returns the same object until MoveNext is called. MoveNextCurrent를 다음 요소로 설정합니다.MoveNext sets Current to the next element.

경우 MoveNext 열거자를 컬렉션의 끝 컬렉션의 마지막 요소 뒤에 배치 되는 전달 하 고 MoveNext 반환 false합니다.If MoveNext passes the end of the collection, the enumerator is positioned after the last element in the collection and MoveNext returns false. 열거자가 있는 경우이 위치에 대 한 후속 호출은 MoveNext 반환할 수도 false합니다.When the enumerator is at this position, subsequent calls to MoveNext also return false. 마지막으로 호출 하는 경우 MoveNext 반환 false, Current 정의 되지 않습니다.If the last call to MoveNext returned false, Current is undefined. Current를 컬렉션의 첫 번째 요소로 다시 설정할 수 없으므로 대신 새 열거자 인스턴스를 만들어야 합니다.You cannot set Current to the first element of the collection again; you must create a new enumerator instance instead.

열거자는 컬렉션이 변경되지 않은 상태로 유지되는 한 유효한 상태를 유지합니다.An enumerator remains valid as long as the collection remains unchanged. 변경에 추가 하는 등 컬렉션을 수정 하거나 요소를 삭제, 열거자가 복구할 유효 하지 않으며을 다음에 호출할 MoveNext 또는 IEnumerator.Reset throw는 InvalidOperationException합니다.If changes are made to the collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call to MoveNext or IEnumerator.Reset throws an InvalidOperationException.

열거자는 컬렉션에 배타적으로 액세스하지 못하므로 컬렉션을 열거하는 것은 본질적으로 스레드로부터 안전한 프로시저가 아닙니다.The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is intrinsically not a thread-safe procedure. 열거 동안 스레드 보안을 보장하려면 전체 열거 동안 컬렉션을 잠그면 됩니다.To guarantee thread safety during enumeration, you can lock the collection during the entire enumeration. 여러 스레드에서 컬렉션에 액세스하여 읽고 쓸 수 있도록 허용하려면 사용자 지정 동기화를 구현해야 합니다.To allow the collection to be accessed by multiple threads for reading and writing, you must implement your own synchronization.

컬렉션의 기본 구현은 System.Collections.Generic 동기화 되지 않습니다.Default implementations of collections in System.Collections.Generic are not synchronized.

속성

Current Current Current Current

열거자의 현재 위치에 있는 요소를 가져옵니다.Gets the element at the current position of the enumerator.

메서드

Dispose() Dispose() Dispose() Dispose()

Dictionary<TKey,TValue>.Enumerator에서 사용하는 모든 리소스를 해제합니다.Releases all resources used by the Dictionary<TKey,TValue>.Enumerator.

MoveNext() MoveNext() MoveNext() MoveNext()

열거자를 Dictionary<TKey,TValue>의 다음 요소로 이동합니다.Advances the enumerator to the next element of the Dictionary<TKey,TValue>.

명시적 인터페이스 구현

IDictionaryEnumerator.Entry IDictionaryEnumerator.Entry IDictionaryEnumerator.Entry IDictionaryEnumerator.Entry

열거자의 현재 위치에 있는 요소를 가져옵니다.Gets the element at the current position of the enumerator.

IDictionaryEnumerator.Key IDictionaryEnumerator.Key IDictionaryEnumerator.Key IDictionaryEnumerator.Key

열거자의 현재 위치에 있는 요소의 키를 가져옵니다.Gets the key of the element at the current position of the enumerator.

IDictionaryEnumerator.Value IDictionaryEnumerator.Value IDictionaryEnumerator.Value IDictionaryEnumerator.Value

열거자의 현재 위치에 있는 요소의 값을 가져옵니다.Gets the value of the element at the current position of the enumerator.

IEnumerator.Current IEnumerator.Current IEnumerator.Current IEnumerator.Current

열거자의 현재 위치에 있는 요소를 가져옵니다.Gets the element at the current position of the enumerator.

IEnumerator.Reset() IEnumerator.Reset() IEnumerator.Reset() IEnumerator.Reset()

컬렉션의 첫 번째 요소 앞의 초기 위치에 열거자를 설정합니다.Sets the enumerator to its initial position, which is before the first element in the collection.

적용 대상

추가 정보