コレクション作業
AL では、3 種類のコレクションがサポートされています。 コレクションは、1 つの変数に複数の値を含む複合型です。 これらのコレクションはすべて厳密に型指定されているため、同じコレクション内に異なる型の値を持つ必要はありません。 たとえば、整数値のみを許可するコレクションに日付値を追加することはできません。 AL がサポートするコレクションには、次の 3 種類があります。
Array
List
Dictionary
Array
Array は、同じデータ型の値のグループを含む複合変数です。 Array は、次の特性を持つ変数として宣言されます。
識別子
データ型
1 つ以上の要素
インデックス
分析コード
Array は複数の値を保持し、これらの値は Array の要素に格納されます。 インデックスを使用してこれらの値にアクセスできます。インデックスは、別の変数に格納されている値にすることもできます。 この設計では、ループを作成して、Array 内のすべての要素をループするように特定の変数をインクリメントできます。 Dimension プロパティを使用すると、Array が保持する次元の数を定義できます。
Array データ型の変数を作成する場合は、まず Array に含める要素の数を定義する必要があります。 最もよく使用される Array は、1 次元 Array で、これは同じデータ型の要素のリストです。
次の図に示すように、Array は値の行として表すことができます。

Array を作成するには、次のコードを使用します。
SalesAmount: array[10] of Integer;
Array の要素にアクセスするには、次のように Array 要素構文を使用します。
SalesAmount[5] := 0;
前の例では、SalesAmount が識別子であり、Array の 5 番目の要素にアクセスしています。 5 番目の要素で値ゼロ (0) を設定しています。 AL では、1 つの Array に対して 1 からカウントを開始しますが、通常 Java や C# などの他のプログラミング言語は、Array の最初の要素をゼロ (0) から数えて計算を開始します。
角かっこの間に要素が 1 つしかない場合は、1 次元 Array が使用されていることを示します。 多次元 Array を作成する場合は、次のように、角かっこの間にコンマ区切りのリストを使用します。
SalesAmount: array[6,9] of Integer;
Array の要素にアクセスするには、次のように Array 要素構文を使用します。
SalesAmount[5,3] := 0;
多次元 Array は、次の図に示すように値のテーブルとして表すことができます。

List
List データ型は Array と比較できます。 List 型は基本型でのみ使用でき、インデックスでアクセスできる厳密に型指定された値のリストを表します。
したがって List 型の [Integer] は使用できますが、List 型に [Blob] を設定することはできません。
List データ型では、事前に格納する要素の数を定義する必要はありません (一方、Array のデータ型は同じです)。
List データ型では、.Net Framework の System.Collections.Generic.List<T> クラスを使用して、いくつかの組み込みメソッドを使用できます。
List データ型には、頻繁に使用されるいくつかのメソッドがあります。 List データ型に使用できるメソッドについては、このラーニング パスの後のモジュールで説明します。ただし、次の図は List のタイプを使用して新しい変数を作成する方法を示しています。

Dictionary
Dictionary データ型では、.Net Framework の System.Collections.Generic.Dictionary <TKey,TValue> クラスを使用して、いくつかの組み込みメソッドを使用できるようにします。 このデータ型は、キーと値のコレクションを表します。
この Dictionary で作成するすべてのキーは、一意である必要があります。 主な利点は、特定のキーの値をすぐに取得できることです。
値は型にできますが、List または別の Dictionary データ型を指定することもできます。
