コレクションや配列の要素すべてを1つずつ処理する「繰り返し(コレクションの各要素)」アクテビティについてです。
1.アクティビティのプログラム名
RCA.Activities.Core.ForEach
2.説明
Studio バージョン ~2.0.2.0
クイックアクセス: 「ツールボックス」 >「コントロールフロー」 > 「繰り返し(コレクションの各要素)」
Studio バージョン 2.0.3.0~
クイックアクセス: 「ツールボックス」 >「システム」>「コントロールフロー」 > 「繰り返し(コレクションの各要素)」
コレクションや配列で最初の要素から一つずつ取り出し処理する事を、最後の要素まで繰り返すアクティビティです。
※動作を確認したコボットStudioのバージョン:2.0.1.6
※バージョンによって文言などが一部異なる場合がございます
3.プロパティ
プロパティ項目 | プロパティ名 | 入力欄 | 説明 |
---|---|---|---|
その他 | TypeArgument | ドロップダウン選択 | 繰り返し(コレクションの各要素)の中で使用する要素の変数の型を選択する。 |
パブリック | チェック項目 | ログにアクティビティ内の変数と引数がログファイルに書き込まれ、Centerにプッシュされる。 | |
表示名 | 値を入力(String型) | デザイナーパネルのアクティビティ名に反映される。 | |
出力 | 現在のインデックス | 値を入力(Int32型) | 処理を行っている要素番号を格納する変数を指定する。0から始まる連番となる。 |
入力 | 値 | 値を入力 (IEnumerable型) | 処理対象となるIEnumerable型の変数を指定する。※List<T> 型や配列はIEnumerable を実装または継承している。 |
4.使い方
List<String> 型で作成した「locationList 」を、「繰り返し(コレクションの各要素)」アクティビティを使用し、最初の要素から最後の要素まで一つずつメッセージボックスに表示してみましょう。
アクティビティ「コントロールフロー > 繰り返し(コレクションの各要素)」を、ツールボックスからデザイナーパネルにドラッグ&ドロップで配置します。
アクティビティ内「値」に「locationList 」を指定します。(プロパティパネルの「入力 > 値」でも指定できます。)変数名の1文字目を入力すると、候補として作成した「locationList 」が表示されます。
取り込んだ要素を格納する変数「item」のデータタイプを選択します。List<String> 型から各要素を取り込むので「String」を選択します。
String型変数「item」に、リスト「locationList」から1要素ずつ取り込まれます。最初の要素から最後の要素まで、リストの要素数分繰り返されます。繰り返すたび「item」が更新されます。この変数名は変更も可能です。
今回は要素番号を使用したいため、プロパティの「出力 > 現在のインデックス」に変数名を指定します。変数が作成されていない場合、「変数の作成」を行い指定します。「プロパティから作成する」でインデックスの変数を作成した場合、変数の型はInt32型で作成されます。例では変数名を「index」としています。
変数タブをクリックすると、作成した変数の確認ができます。
「ボディー」内に、リスト「locationList」から取り込んだ「item」に対しての処理内容を記述します。今回は1要素ずつメッセージを表示したいので、アクティビティ「コア > メッセージボックス」をツールボックスからデザイナーパネルの「ボディー」内にドラッグ&ドロップで配置します。
アクティビティ内「テキスト」にメッセージボックスに表示したい内容を指定します。(プロパティパネルの「入力 > テキスト」からも可能です。)今回は、メッセージボックスに要素番号と要素の値を「【1番目の値:東京都】」という形式で表示します。プロパティの値は「"【" + (index+1).toString + "番目の値:" + item + "】"」とします。
「ホーム > スタート」をクリック、または、「F5キー」押下で実行します。
実行結果です。リスト「locationList」の要素数分、メッセージボックスが表示されます。