C++Builderで列挙子を使う

Delphiのfor..in文をサポートするクラスは、GetEnumeratorメソッドで列挙子を取得できます。

たとえば、
TStringsはTStringsEnumeratorのオブジェクト、
TListはTListEnumeratorのオブジェクト、
TCollectionはTCollectionEnumeratorのオブジェクト
を返します。

C++Builderでも列挙子を取得して使用することができます。

列挙子は、GetCurrentメソッドで現在フォーカスが当たっている要素を返します。
MoveNextメソッドでフォーカスを次の要素に移動し、要素があればTrueを返します。

TStringList* sl = new TStringList();
sl->Add("foo");
sl->Add("bar");
sl->Add("baz");

//列挙子を取得
TStringsEnumerator* enumrator = sl->GetEnumerator();
while (enumrator->MoveNext()) {  //次の要素に移動
  UnicodeString s = enumrator->GetCurrent(); //要素を取得
  ShowMessage(s);
}

delete enumrator;
delete sl;

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください