IEnumerator インターフェイス

コレクションに対する単純な反復処理をサポートします。

この型のすべてのメンバの一覧については、IEnumerator メンバ を参照してください。

<Guid("496B0ABF-CDEE-11d3-88E8-00902754C43A")>
Public Interface IEnumerator
[C#]
[Guid("496B0ABF-CDEE-11d3-88E8-00902754C43A")]
public interface IEnumerator
[C++]
[Guid("496B0ABF-CDEE-11d3-88E8-00902754C43A")]
public __gc __interface IEnumerator
[JScript]
public
   Guid("496B0ABF-CDEE-11d3-88E8-00902754C43A")
interface IEnumerator

IEnumerator を実装するクラス

クラス 説明
CharEnumerator String の反復処理と個別の文字の読み取りをサポートします。
DbEnumerator .NET Framework データ プロバイダがコレクションに対して単純な反復処理を実行するのをサポートする、 GetEnumerator メソッドを公開します。
ManagementObjectCollection.ManagementObjectEnumerator コレクションの列挙子を表します。
MessageEnumerator メッセージ キュー内のメッセージを列挙するための前方向カーソルを提供します。
MessageQueueEnumerator メッセージ キュー内のメッセージを列挙するための前方向カーソルを提供します。
MethodDataCollection.MethodDataEnumerator MethodDataCollection 内の MethodData オブジェクトの列挙子を表します。
PropertyDataCollection.PropertyDataEnumerator PropertyDataCollection 内の PropertyData オブジェクトの列挙子を表します。
QualifierDataCollection.QualifierDataEnumerator QualifierDataCollection 内の QualifierData オブジェクトの列挙子を表します。
SerializationInfoEnumerator SerializationInfo のデータを解析するための、フォーマッタ支援の機構を提供します。このクラスは継承できません。
TextElementEnumerator 文字列のテキスト要素を列挙します。
X509CertificateCollection.X509CertificateEnumerator X509CertificateCollection 内の X509Certificate オブジェクトを列挙します。
XmlSchemaCollectionEnumerator コレクションに対する単純な反復処理をサポートします。このクラスは継承できません。
XmlSchemaObjectEnumerator XmlSchemaObjectCollection の列挙子を表します。このクラスは継承できません。

解説

IEnumerator は、すべての列挙子に対する基本インターフェイスです。

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

初期状態では、列挙子はコレクションの最初の要素の前に位置しています。 Reset を実行した場合も、列挙子はこの位置に戻されます。この位置で Current を呼び出すと、例外がスローされます。したがって、 Current の値を読み取る前に、 MoveNext を呼び出して、コレクションの最初の要素に列挙子を進める必要があります。

Current は、 MoveNext または Reset が呼び出されるまでは同じオブジェクトを返します。 MoveNext は、 Current を次の要素に位置付けます。

コレクションの末尾を過ぎると列挙子はコレクションの最後の要素の後に位置付けられ、 MoveNext を呼び出すと false が返されます。 MoveNext への最後の呼び出しで false が返された場合は、 Current を呼び出すと例外がスローされます。 Current をコレクションの最初の要素に再度位置付けるには、 Reset を呼び出し、次に MoveNext を呼び出します。

コレクションが変更されない限り、列挙子は有効なままです。要素の追加、変更、削除などの変更がコレクションに対して実行されると、列挙子は回復不可能な無効状態になり、次に MoveNext または Reset を呼び出すと、 InvalidOperationException がスローされます。コレクションが MoveNextCurrent の間で変更された場合、列挙子が既に無効になっていても、 Current は設定した要素を返します。

列挙子はコレクションへの排他アクセス権を持たないため、コレクションの列挙処理は、本質的にはスレッド セーフな処理ではありません。コレクションが同期されている場合でも、他のスレッドがそのコレクションを変更する可能性はあり、そのような状況が発生すると列挙子は例外をスローします。列挙処理を確実にスレッド セーフに行うには、列挙中にコレクションをロックするか、他のスレッドによって行われた変更によってスローされる例外をキャッチします。

必要条件

名前空間: System.Collections

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

IEnumerator メンバ | System.Collections 名前空間 | IEnumerable | ICollection