System::Collections::Generic::IEnumerator class

IEnumerator class

列挙子のインターフェイスで、いくつかの要素を反復処理するために使用できます。このクラスのオブジェクトは、System::MakeObject() 関数を使用してのみ割り当てるべきです。スタック上や operator new を使用してこの型のインスタンスを作成しないでください。そうすると実行時エラーやアサーション障害が発生します。このクラスは常に System::SmartPtr ポインタでラップし、そのポインタを関数への引数として使用してください。

template<typename T>class IEnumerator : public virtual System::IDisposable,
                                        public System::Details::EnumeratorBasedIterator<T>,
                                        protected System::Details::IteratorPointerUpdater<T, false>
パラメーター説明
T要素型。

メソッド

メソッド説明
AsVirtualizedIterator()VirtualizedIterator クラスで使用されるイテレータを準備します。
CloneIterator() const override現在のイテレータをクローンします。
virtual Current() const現在の要素を取得します。
virtual get_Current() const現在の要素を取得します。
IEnumerator()
IncrementIterator() overrideイテレータを 1 ステップ前進させます。
InitializeIterator() override最初の MoveNext() 呼び出しを行い、VirtualizedIterator で使用される列挙子オブジェクトを準備します。
MarkOwnedByVirtualizedIterator()仮想化イテレータが所有する列挙子にマークを付けます。
virtual MoveNext()列挙子を次の要素へ移動します。以前に要素が参照されていない場合、利用可能な最初の要素を参照に設定します。コンテナの末尾に達した場合は何もしません。
virtual Reset()列挙子を最初の要素の前の位置にリセットします。
virtual ~IEnumerator()

Typedefs

型定義説明
ValueType値型です。

備考

#include <system/collections/list.h>
#include <system/smart_ptr.h>

using namespace System;
using namespace System::Collections::Generic;

int main()
{
  // List クラスのインスタンスを作成します。
  auto collection = MakeObject<List<int>>();

  // リストを埋めます。
  collection->Add(1);
  collection->Add(2);
  collection->Add(3);

  // リストの列挙子を取得します。
  auto enumerator = collection->GetEnumerator();

  while (enumerator->MoveNext())
  {
    // 現在の要素を取得して表示します。
    std::cout << enumerator->get_Current() << ' ';
  }

  // 列挙子をリセットします。
  enumerator->Reset();

  return 0;
}
/*
This code example produces the following output:
1 2 3
*/

参照