Trabalhar com coleções
O AL é compatível com três tipos de coleções. Uma coleção é um tipo complexo que contém vários valores em uma variável. Todas essas coleções são fortemente tipadas, o que significa que você não pode ter valores com tipos diferentes na mesma coleção. Por exemplo, não é possível adicionar valores de data em uma coleção que só permite valores inteiros. O AL é compatível com estes três tipos de coleções:
Array
List
Dictionary
Arrays
Arrays são variáveis complexas que contêm um grupo de valores com o mesmo tipo de dados. Uma array é declarada como uma variável com as seguintes características:
Um identificador
Um tipo de dados
Um ou mais elementos
Um índice
Uma dimensão
Uma array armazena vários valores, e esses valores são armazenados nos elementos da array. Você pode acessar esses valores usando o índice, que também pode ser um valor armazenado em outra variável. Com esse design, você pode criar um loop em que você incrementa uma determinada variável para executar um loop por todos os elementos de uma array. Ao usar a propriedade Dimension, você pode definir quantas dimensões a array conterá.
Ao criar uma variável de um tipo de dados de array, primeiro é necessário definir quantos elementos você terá na array. A array mais comum é a array unidimensional, que é uma lista de elementos com o mesmo tipo de dados.
Você pode representar uma array como uma linha de valores, conforme mostrado na figura a seguir.

Para criar uma array, use o seguinte código:
SalesAmount: array[10] of Integer;
Para acessar um elemento em uma array, use a sintaxe do elemento da array:
SalesAmount[5] := 0;
No exemplo anterior, SalesAmount é o identificador, e você está acessando o quinto elemento da array. Você está definindo o valor zero (0) no quinto elemento. No AL, você começa a contar um (1) para uma array, enquanto outras linguagens de programação, como Java, C# e outros geralmente começam a contagem em zero (0) para o primeiro elemento de uma array.
Ter apenas um elemento entre colchetes indica que você está usando uma array unidimensional. Se quiser ter uma array multidimensional, use uma lista separada por vírgula entre os colchetes, da seguinte maneira:
SalesAmount: array[6,9] of Integer;
Para acessar um elemento em uma array, use a sintaxe do elemento da array:
SalesAmount[5,3] := 0;
Uma array multidimensional pode ser representada como uma tabela de valores, conforme mostrado na figura a seguir.

Lists
O tipo de dados List pode ser comparado com uma array. O tipo List só pode ser usado com tipos fundamentais e representa uma lista altamente tipada de valores que podem ser acessados pelo índice.
Portanto, você pode ter um tipo List de [Integer], mas não pode ter um tipo List de [Blob].
Um tipo de dados List não exige que você defina quantos elementos deseja armazenar antecipadamente (enquanto um tipo de dados Array exige).
O tipo de dados List usa a classe System.Collections.Generic.List<T> do .NET Framework, que permite usar alguns métodos incorporados.
O tipo de dados List tem alguns métodos que são usados com frequência. Os métodos disponíveis para um tipo de dados List serão abordados em um módulo mais adiante neste roteiro de aprendizagem, porém, a figura a seguir mostra como criar uma nova variável com um tipo List.

Dictionary
O tipo de dados Dictionary usa a classe System.Collections.Generic.Dictionary<TKey, TValue> do .NET Framework, que permite usar alguns métodos internos. Esse tipo de dados representa um conjunto de chaves e valores.
Todas as chaves criadas nesse dictionary precisam ser exclusivas. O principal benefício é que você pode obter imediatamente o valor para uma chave específica.
O valor pode ser um tipo, mas também pode ser uma List ou outro tipo de dados Dictionary.
