UiPath 配列(Array)とコレクション(Collection)
UiPathで同じデータ型のデータをまとめて扱う変数として配列とコレクションが存在します。
この記事では、その使い方と特徴を説明にします。
使い方と特徴
配列は要素数が固定の集まりを管理するのに適しています。
コレクションは逆に要素数が不定の集まりに向いていて、
要素の追加、削除が行いやすいデータ型です。
配列
宣言と要素の設定
配列を使用するには変数の型でArray of[T]を選びます。
![配列の宣言](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-130.png)
要素のデータ型を選択すると配列変数が宣言されます。
![配列要素のデータ型指定](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-131.png)
次に規定値や代入アクティビティで値を設定します。
{}の中にカンマ区切りで要素を指定します。
1から4までの数値を格納する場合は、このように指定します。
{1,2,3,4}
![配列の初期化](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-132.png)
要素へのアクセス
下記のように指定します。
配列変数(インデックス)
インデックスは0から始まる連番です。
今回の1~4の配列ではこのようになります。
インデックス | 0 | 1 | 2 | 3 |
値 | 1 | 2 | 3 | 4 |
今回の「配列」変数の3番目の要素を使う場合は、
このような指定になります。
配列(2)
![配列の要素へのアクセス](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-139.png)
特徴
配列は代入アクティビティで全て上書きすることはできますが、
特定の要素を追加したり、削除するなど柔軟な操作には向いていません。
上書きは出来るので不可能ではないですが手間がかかります。
コレクションは追加・削除をサポートしたメソッドがあるため、
定数のように要素が固定された集まりに利用するのが適切な使い方です。
名前的には利用できない気がしますが、
繰り返し(コレクションの各要素) に配列は利用可能です。
![配列を繰り返し(コレクションの各要素)で利用する例](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-133-1024x471.png)
コレクション
宣言と要素の設定
コレクションは初期状態に変数の型にないため
利用するには型の参照から検索する必要があります。データ型は
System.Collections.Generic.List<T>です。
![コレクションの宣言](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-136.png)
要素が空(0個)のコレクションを作るには
規定値や代入アクティビティでこのように設定します。
new List(of データ型)
![コレクションへ空要素を設定](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-137.png)
格納要素も含めたコレクションを作るには
規定値や代入アクティビティでこのように設定します。
new List(of データ型) From {格納する要素をカンマ区切り}
1から5までの数値を格納する場合は、このように指定します。
new List(of Int32) From {1,2,3,4,5}
![コレクションへ要素を設定](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-138.png)
要素へのアクセス
今回利用したList型は配列と同様、インデックスで管理されます。
(配列に要素を管理するメソッドを追加したもの)
要素にアクセスする場合は配列と同様、インデックスを使用します。
コレクション変数(インデックス)
![コレクション要素へのアクセス](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-140.png)
List以外のデータ構造では、アクセスの方法が異なります。
特徴
有無の確認などアクティビティで柔軟な管理が行えます。
この記事ではもっとも基本的なListを扱いましたが、
コレクションには他のデータ構造も存在します。
データ型 | 要素の管理方法 |
---|---|
(新しいタブで開く)">List<T> | 配列と同様、整数の連番(インデックス) |
Dictionary<TKey,TValue> | キー(文字列など任意のデータ型) |
SortedList<TKey,TValue> | キーの順番で並び替えされたDictionary |
Queue<T> | 先入れ先出し (FIFO) |
Stack<T> | 後入れ先出し (LIFO) |