Procedura: aggiungere, eliminare e recuperare elementi di un insieme (Visual Basic)
La classe Collection di Visual Basic è dotata di una funzionalità incorporata che consente di aggiungere, eliminare e recuperare elementi.
È possibile aggiungere un elemento a un insieme non appena l'elemento viene creato o ottenuto, ad esempio nel caso di un nuovo cliente.
È possibile eliminare un elemento da un insieme quando non appartiene più all'insieme, ad esempio nel caso di un dipendente che lascia l'azienda.
È possibile recuperare un elemento da un insieme per modificarne il contenuto, ad esempio per modificare il numero di telefono di uno studente.
Nota
Quando si aggiungono ed eliminano elementi, gli oggetti Collection aggiornano automaticamente i relativi valori degli indici numerici. Di conseguenza, l'indice numerico di un dato elemento può cambiare spesso. Non è consigliabile quindi salvare il valore di un indice numerico per recuperare lo stesso elemento nel programma in un momento successivo. A questo scopo invece è preferibile utilizzare le chiavi.
Per aggiungere un elemento a un insieme
Utilizzare il metodo Add e specificare l'elemento in base alla chiave (Key).
object.Add(Item, Key [, {Before | After}])
Ad esempio, per aggiungere un oggetto ordine di servizio a un insieme di ordini di servizio utilizzando come chiave la proprietà ID dell'ordine di servizio, è possibile effettuare la seguente chiamata.
workOrders.Add(woNew, woNew.ID)
Nella chiamata precedente si presuppone che la proprietà ID sia una stringa. Se la proprietà è un numero, ad esempio un Integer Long, utilizzare il relativo metodo ToString per convertirlo nel valore String richiesto per l'argomento Key.
workOrders.Add(woNew, woNew.ID.ToString())
L'utilizzo di una chiave è facoltativo. Se non si desidera associare una chiave all'oggetto dell'insieme, è possibile aggiungerlo senza specificare alcuna chiave.
workOrders.Add(woNew)
Per mantenere un insieme ordinato di oggetti, è possibile utilizzare gli argomenti facoltativi Before e After. L'elemento da aggiungere viene inserito nell'insieme rispettivamente prima o dopo l'elemento identificato dall'argomento Before o After. Ad esempio, impostando l'argomento Before su 1, viene inserito un elemento all'inizio dell'insieme, poiché gli oggetti Collection sono in base 1.
workOrders.Add(woNew, woNew.ID, 1)
Analogamente, l'argomento After aggiunge un elemento dopo l'indice specificato. Nell'esempio riportato di seguito viene aggiunto un elemento al terzo posto.
workOrders.Add(woNew, woNew.ID,,2)
È possibile specificare un valore per Before o After, ma non per entrambi.
Per eliminare un elemento da un insieme
Utilizzare il metodo Remove e specificare l'elemento in base all'indice (Index) o alla chiave (Key).
object.Remove({Index | Key})
L'argomento Index indica la posizione dell'elemento da eliminare. L'argomento Key corrisponde alla stringa utilizzata per aggiungere l'elemento all'insieme. Se la chiave del terzo elemento di un insieme è "W017493", per eliminare l'elemento è possibile utilizzare una delle seguenti due istruzioni.
workOrders.Remove(3) workOrders.Remove("W017493")
Per eliminare tutti gli elementi da un insieme
Utilizzare il metodo Clear.
object.Clear()
Il metodo Clear svuota l'insieme.
Per recuperare un elemento da un insieme
Utilizzare la proprietà Item e specificare l'elemento in base all'indice (Index) o alla chiave (Key).
variable = object.Item({Index | Key})
Come per il metodo Remove, l'argomento Index indica la posizione dell'elemento nell'insieme e l'argomento Key corrisponde alla stringa utilizzata al momento dell'aggiunta dell'elemento. Utilizzando lo stesso esempio del metodo Remove, entrambe le seguenti istruzioni recuperano il terzo elemento dell'insieme.
woCurrent = workOrders.Item(3) woCurrent = workOrders.Item("W017493")
Nota
Se come chiavi si utilizzano dei numeri, è necessario utilizzare i relativi metodi ToString per convertirli in stringhe prima di passarli al metodo Add o Remove oppure alla proprietà Item. Un oggetto Collection di Visual Basic presuppone sempre che un numero sia un indice anziché la stringa di una chiave.
Se si conosce la chiave in fase di compilazione, in alternativa è possibile utilizzare l'operatore di accesso al dizionario (!) per accedere a un elemento dell'insieme senza racchiudere la chiave tra virgolette o parentesi. La chiamata precedente può essere scritta nel modo seguente.
woCurrent = workOrders!W017493