Uso delle raccolte

Completato

AL supporta tre tipi di raccolte. Una raccolta è un tipo complesso che contiene più valori in una variabile. Tutte queste raccolte sono fortemente tipizzate, il che significa che non è possibile avere valori con tipi diversi nella stessa raccolta. Ad esempio, non è possibile aggiungere valori di data in una raccolta che consente solo valori interi. AL supporta i seguenti tre tipi di raccolte:

  • Array

  • List

  • Dictionary

Array

Gli elementi di tipo array sono variabili complesse che contengono un gruppo di valori con lo stesso tipo di dati. Un oggetto di tipo array è dichiarato come una variabile con le seguenti caratteristiche:

  • Un identificatore

  • Un tipo di dati

  • Uno o più elementi

  • Un indice

  • Una dimensione

Un oggetto di tipo array contiene più valori e questi valori vengono memorizzati nei suoi elementi. È possibile accedere a questi valori utilizzando l'indice, che può essere anche un valore memorizzato in un'altra variabile. Con questo concetto è possibile creare un ciclo in cui si incrementa una determinata variabile per iterare ogni elemento in un oggetto di tipo array. Utilizzando la proprietà Dimension, è possibile definire il numero di dimensioni dell'oggetto di tipo array.

Quando si crea una variabile di un tipo di dati dell'oggetto di tipo array, è necessario definire innanzitutto quanti elementi conterrà. L'oggetto di tipo array più comunemente usato è quella unidimensionale, che è un elenco di elementi con lo stesso tipo di dati.

È possibile rappresentare un tale oggetto come una riga di valori, come mostrato nella figura che segue.

Esempio che mostra un oggetto di tipo array unidimensionale.

Per creare un oggetto di tipo array, usare il seguente codice:

SalesAmount: array[10] of Integer;

Per accedere a un elemento in un oggetto di tipo array, usare la sintassi dell'elemento relativo:

SalesAmount[5] := 0;

Nel precedente esempio SalesAmount è l'identificatore e si sta eseguendo l'accesso al quinto elemento dell'oggetto di tipo array. Si sta impostando il valore di zero (0) nel quinto elemento. In AL si inizia a contare da uno (1) per un oggetto di tipo array, mentre altri linguaggi di programmazione, come Java, C # e così via, iniziano in genere a contare da zero (0) per il primo elemento di un oggetto di tipo array.

Un solo elemento tra parentesi quadre indica che si sta utilizzando un oggetto di tipo array unidimensionale. Se si vuole un oggetto di tipo array multidimensionale, usare un elenco separato da virgole tra parentesi, come segue:

SalesAmount: array[6,9] of Integer;

Per accedere a un elemento in un oggetto di tipo array, usare la sintassi dell'elemento relativo:

SalesAmount[5,3] := 0;

Un oggetto di tipo array multidimensionale può essere rappresentata come una tabella di valori, come mostrato nella figura che segue.

Esempio che mostra un oggetto di tipo array multidimensionale.

Lists

Il tipo di dati List può essere confrontato con un oggetto di tipo array. Il tipo List può essere usato solo con i tipi fondamentali e rappresenta un elenco di valori fortemente tipizzati a cui è possibile accedere tramite l'indice.

Pertanto, si può avere un tipo List di [Integer], ma non un tipo List di [BLOB].

Un tipo di dati List non richiede di definire la quantità di elementi da memorizzare in anticipo, diversamente da un tipo di dati Array.

II tipo di dati List utilizza la classe System.Collections.Generic.List<T> di .NET Framework, che consente di utilizzare alcuni metodi predefiniti.

Il tipo di dati List ha alcuni metodi che vengono utilizzati di frequente. I metodi che sono disponibili per un tipo di dati List sono illustrati in un modulo successivo di questo percorso di apprendimento; tuttavia, la figura che segue mostra come creare una nuova variabile con un tipo di List.

Esempio di visualizzazione di un tipo di dati List di base.

Dictionary

II tipo di dati Dictionary utilizza la classe System.Collections.Generic.Dictionary<TKey, TValue> di .NET Framework, che consente di utilizzare alcuni metodi predefiniti. Questo tipo di dati rappresenta una raccolta di chiavi e valori.

Ogni chiave creata in questo dizionario deve essere univoca. Il vantaggio principale è che si può ottenere immediatamente il valore per una chiave specifica.

Il valore può essere un tipo, ma può anche essere un tipo di dati List oppure un altro tipo di dati Dictionary.

Esempio di visualizzazione di un tipo di dati Dictionary.