この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

List<T>.Enumerator 構造体

 

公開日: 2016年10月

List<T> の要素を列挙します。

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

[SerializableAttribute]
public struct Enumerator : IEnumerator<T>, IDisposable, IEnumerator

名前説明
System_CAPS_pubpropertyCurrent

列挙子の現在位置の要素を取得します。

名前説明
System_CAPS_pubmethodDispose()

List<T>.Enumerator によって使用されているすべてのリソースを解放します。

System_CAPS_pubmethodEquals(Object)

このインスタンスと指定したオブジェクトが等しいかどうかを示します。(ValueType から継承されます。)

System_CAPS_pubmethodGetHashCode()

このインスタンスのハッシュ コードを返します。(ValueType から継承されます。)

System_CAPS_pubmethodGetType()

現在のインスタンスの Type を取得します。(Object から継承されます。)

System_CAPS_pubmethodMoveNext()

列挙子を List<T> の次の要素に進めます。

System_CAPS_pubmethodToString()

このインスタンスの完全修飾型名を返します。(ValueType から継承されます。)

名前説明
System_CAPS_pubinterfaceSystem_CAPS_privmethodIEnumerator.Reset()

列挙子を初期位置、つまりコレクションの最初の要素の前に設定します。

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIEnumerator.Current

列挙子の現在位置の要素を取得します。

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

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

最初に、列挙子はコレクション内の 1 番目の要素の前に位置付けられます。 この位置では、Current が未定義です。 そのため、MoveNext の値を読み取る前に、Current を呼び出して列挙子をコレクションの最初の要素に進める必要があります。

Current は、MoveNext が呼び出されるまでは同じオブジェクトを返します。 MoveNext は、Current を次の要素に設定します。

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

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

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

既定の実装のコレクションの System.Collections.Generic が同期されていません。

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
2.0 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
Windows Phone
8.1 以降で使用可能

この型のパブリック static (Visual Basic では Shared ) メンバーはスレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

トップに戻る
表示: