Dictionary.System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>.GetEnumerator メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > Dictionary.System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>.GetEnumerator メソッドの意味・解説 

Dictionary.System.Collections.Generic.IEnumerable>.GetEnumerator メソッド

メモ : このメソッドは、.NET Framework version 2.0 で新しく追加されたものです。

コレクションを反復処理する列挙子を返します。

名前空間: System.Collections.Generic
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Private Function System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>.GetEnumerator
 As IEnumerator(Of KeyValuePair(Of
 TKey, TValue)) Implements IEnumerable(Of KeyValuePair(Of TKey, TValue)).GetEnumerator
Dim instance As Dictionary(Of
 TKey, TValue)
Dim returnValue As IEnumerator(Of
 KeyValuePair(Of TKey, TValue))

returnValue = CType(instance, IEnumerable(Of KeyValuePair(Of
 TKey, TValue))).GetEnumerator
IEnumerator<KeyValuePair<TKey,TValue>> IEnumerable<KeyValuePair<TKey,TValue>>.GetEnumerator
 ()
private:
virtual IEnumerator<KeyValuePair<TKey, TValue>>^ System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>.GetEnumerator
 () sealed = IEnumerable<KeyValuePair<TKey, TValue>>::GetEnumerator

戻り値
コレクションを反復処理するために使用できる IEnumerator。

解説解説

列挙処理のために、各アイテムは、値とそのキーを表す KeyValuePair 構造体です。

C# 言語の foreach ステートメント (C++ の場合は for each、Visual Basic の場合は For Each) を使用することで列挙子の複雑さを回避できます。したがって、列挙子を直接操作するのではなく、foreach の使用をお勧めします。

列挙子を使用すると、コレクション内のデータを読み取ることができますが、基になるコレクションを変更することはできません。

最初に、列挙子はコレクションの最初の要素の前に配置されます。この位置で、Current プロパティが未定義です。したがって、Current の値を読み取る前に、MoveNext メソッドを呼び出して、コレクションの最初の要素に列挙子を進める必要があります。

メモメモ

パフォーマンス向上のために、このプロパティから返される列挙値は、それが最初の要素の前、または最後の要素の後に配置されていても例外をスローせず、Current プロパティがアクセスされます。Current プロパティの値は未定義です。

Current プロパティは、MoveNext メソッドが呼び出されるまでは同じ要素を返します。MoveNext は、Current を次の要素に設定します。

MoveNext がコレクションの末尾を過ぎると、列挙子はコレクションの最後の要素の後ろに配置され、MoveNext は false を返します。列挙子がこの位置にある場合、以降、MoveNext を呼び出しても false が返されます。MoveNext への最後の呼び出しで false が返された場合は、Current が未定義です。Current を、再度、コレクションの最初の要素に設定することはできません。列挙子の新しいインスタンスを作成する必要があります。

コレクションが変更されない限り、列挙子は有効なままです。要素の追加、変更、削除などの変更がコレクションに対して実行されると、列挙子は回復不可能な無効状態になり、動作は未定義になります。

列挙子はコレクションへの排他アクセス権を持たないため、コレクションの列挙処理は、本質的にはスレッド セーフな処理ではありません。すべての列挙処理が終わるまでコレクションをロックすることにより、列挙処理でのスレッド セーフを確保できます。コレクションに対し複数のスレッドがアクセスして読み取りや書き込みを行うことができるようにするには、独自に同期化を実装する必要があります。

System.Collections.Generic 名前空間のコレクションの既定の実装は同期されません。

このメソッドは O(1) 操作です。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Dictionary ジェネリック クラス
Dictionary メンバ
System.Collections.Generic 名前空間
Dictionary.GetEnumerator メソッド
IEnumerator
IEnumerator インターフェイス



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

Dictionary.System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>.GetEnumerator メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Dictionary.System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>.GetEnumerator メソッドのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS