SortedDictionary<TKey,TValue>.KeyCollection.Enumerator 構造体
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
public: value class SortedDictionary<TKey, TValue>::KeyCollection::Enumerator : System::Collections::Generic::IEnumerator<TKey>
public struct SortedDictionary<TKey,TValue>.KeyCollection.Enumerator : System.Collections.Generic.IEnumerator<TKey>
type SortedDictionary<'Key, 'Value>.KeyCollection.Enumerator = struct
interface IEnumerator<'Key>
interface IEnumerator
interface IDisposable
type SortedDictionary<'Key, 'Value>.KeyCollection.Enumerator = struct
interface IEnumerator<'Key>
interface IDisposable
interface IEnumerator
Public Structure SortedDictionary(Of TKey, TValue).KeyCollection.Enumerator
Implements IEnumerator(Of TKey)
型パラメーター
- TKey
- TValue
- 継承
- 実装
注釈
C# 言語の foreach ステートメント (Visual Basic のFor Each ) では、列挙子の複雑さが隠されます。 したがって、列挙子を直接操作するのではなく、 foreach を使用することをお勧めします。
列挙子を使用してコレクション内のデータを読み取ることができますが、基になるコレクションを変更するために使用することはできません。
最初は、列挙子はコレクション内の最初の要素の前に配置されます。 この位置では、 Current は未定義です。 Currentの値を読み取る前に、MoveNext メソッドを呼び出して列挙子をコレクションの最初の要素に進める必要があります。
Current プロパティは、MoveNextが呼び出されるまで同じオブジェクトを返します。 MoveNext は、 Current を次の要素に設定します。
MoveNextコレクションの末尾を渡すと、列挙子はコレクション内の最後の要素の後に配置され、MoveNextはfalseを返します。 列挙子がこの位置にある場合、後続の MoveNext の呼び出しでも falseが返されます。
false
MoveNext最後の呼び出しが返された場合、Currentは未定義です。
Currentをコレクションの最初の要素に再度設定することはできません。代わりに新しい列挙子インスタンスを作成する必要があります。
列挙子は、コレクションが変更されない限り有効なままです。 要素の追加、変更、削除など、コレクションに変更が加えられた場合、列挙子は回復不能に無効になり、次に MoveNext または IEnumerator.Reset 呼び出すと InvalidOperationExceptionがスローされます。
列挙子は、コレクションへの排他的アクセス権を持っていません。したがって、コレクションを通じた列挙は、本質的にスレッド セーフなプロシージャではありません。 列挙中のスレッド セーフを保証するために、列挙体全体の間にコレクションをロックできます。 読み取りと書き込みのためにコレクションに複数のスレッドからアクセスできるようにするには、独自の同期を実装する必要があります。
System.Collections.Generic名前空間内のコレクションの既定の実装は同期されません。
プロパティ
| 名前 | 説明 |
|---|---|
| Current |
列挙子の現在位置にある要素を取得します。 |
メソッド
| 名前 | 説明 |
|---|---|
| Dispose() |
SortedDictionary<TKey,TValue>.KeyCollection.Enumeratorによって使用されるすべてのリソースを解放します。 |
| MoveNext() |
列挙子を SortedDictionary<TKey,TValue>.KeyCollectionの次の要素に進めます。 |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IEnumerator.Current |
列挙子の現在位置にある要素を取得します。 |
| IEnumerator.Reset() |
列挙子を最初の位置 (コレクション内の最初の要素の前) に設定します。 |