Dictionary<TKey,TValue>.Enumerator 구조체
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
Dictionary<TKey,TValue>의 요소를 열거합니다.
public: value class Dictionary<TKey, TValue>::Enumerator : System::Collections::Generic::IEnumerator<System::Collections::Generic::KeyValuePair<TKey, TValue>>, System::Collections::IDictionaryEnumerator
public struct 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 IEnumerator
interface IDisposable
interface IDictionaryEnumerator
[<System.Serializable>]
type Dictionary<'Key, 'Value>.Enumerator = struct
interface IEnumerator<KeyValuePair<'Key, 'Value>>
interface IDisposable
interface IDictionaryEnumerator
interface IEnumerator
[<System.Serializable>]
type Dictionary<'Key, 'Value>.Enumerator = struct
interface IEnumerator<KeyValuePair<'Key, 'Value>>
interface IDisposable
interface IEnumerator
interface IDictionaryEnumerator
type Dictionary<'Key, 'Value>.Enumerator = struct
interface IEnumerator<KeyValuePair<'Key, 'Value>>
interface IDictionaryEnumerator
interface IEnumerator
interface IDisposable
Public Structure Dictionary(Of TKey, TValue).Enumerator
Implements IDictionaryEnumerator, IEnumerator(Of KeyValuePair(Of TKey, TValue))
형식 매개 변수
- TKey
- TValue
- 상속
- 특성
- 구현
설명
C# 언어for each
(C++, For Each
Visual Basic의 경우)의 문은 foreach
열거자의 복잡성을 숨깁니다. 그러므로 열거자를 직접 조작하는 대신 foreach
를 사용하는 것이 좋습니다.
열거자를 사용하여 컬렉션의 데이터를 읽을 수는 있지만 내부 컬렉션을 수정할 수는 없습니다.
처음에 열거자는 컬렉션의 첫 번째 요소 앞에 배치됩니다. 이 위치에서 Current는 정의되지 않습니다. 값을 Current읽기 전에 를 호출 MoveNext 하여 열거자를 컬렉션의 첫 번째 요소로 진행해야 합니다.
Current는 MoveNext가 호출될 때까지 동일한 개체를 반환합니다. MoveNext는 Current를 다음 요소로 설정합니다.
경우 MoveNext 열거자를 컬렉션의 끝 컬렉션의 마지막 요소 뒤에 배치 되는 전달 하 고 MoveNext 반환 false
합니다. 열거자가 있는 경우이 위치에 대 한 후속 호출은 MoveNext 반환할 수도 false
합니다. 반환 false
Current 된 에 대한 MoveNext 마지막 호출이 정의되지 않은 경우 Current를 컬렉션의 첫 번째 요소로 다시 설정할 수 없으므로 대신 새 열거자 인스턴스를 만들어야 합니다.
컬렉션이 변경되지 않고 그대로 유지되는 한 열거자는 유효한 상태로 유지됩니다. 요소 추가 또는 용량 변경과 같이 컬렉션이 변경되면 열거자가 취소할 수 없게 무효화되고 다음에 를 호출 MoveNext 하거나 IEnumerator.Reset 을 InvalidOperationExceptionthrow합니다.
.NET Core 3.0 이상만 해당: 열거자를 무효화하지 않는 유일한 변경 메서드는 및 Clear입니다Remove.
열거자는 컬렉션에 배타적으로 액세스하지 못하므로 컬렉션을 열거하는 것은 본질적으로 스레드로부터 안전한 프로시저가 아닙니다. 열거 동안 스레드 보안을 보장하려면 전체 열거 동안 컬렉션을 잠그면 됩니다. 여러 스레드에서 컬렉션에 액세스하여 읽고 쓸 수 있도록 허용하려면 사용자 지정 동기화를 구현해야 합니다.
의 컬렉션의 기본 구현은 System.Collections.Generic 동기화되지 않습니다.
속성
Current |
열거자의 현재 위치에 있는 요소를 가져옵니다. |
메서드
Dispose() |
Dictionary<TKey,TValue>.Enumerator에서 사용하는 모든 리소스를 해제합니다. |
MoveNext() |
열거자를 Dictionary<TKey,TValue>의 다음 요소로 이동합니다. |
명시적 인터페이스 구현
IDictionaryEnumerator.Entry |
열거자의 현재 위치에 있는 요소를 가져옵니다. |
IDictionaryEnumerator.Key |
열거자의 현재 위치에 있는 요소의 키를 가져옵니다. |
IDictionaryEnumerator.Value |
열거자의 현재 위치에 있는 요소의 값을 가져옵니다. |
IEnumerator.Current |
열거자의 현재 위치에 있는 요소를 가져옵니다. |
IEnumerator.Reset() |
컬렉션의 첫 번째 요소 앞의 초기 위치에 열거자를 설정합니다. |
적용 대상
추가 정보
.NET