In questa lezione vedremo come gestire gli array in C#. Un array è una variabile che contiene più elementi che vengono gestiti tramite un indice. Gli array in C# vanno dichiarati specificando il nome, la dimensione ed il tipo di dati che devono contenere.
Possiamo creare array di qualunque tipo (numerica, stringa, ecc.). Nell’esempio che segue vedremo come creare un array di numeri interi:
int[] myInts = { 5, 10, 15 };
In questo modo dichiariamo un array intero a 3 elementi di nome "myInts" ed assegniamo ad esso 3 valori. Se vogliamo modificare un valore, ad esempio il primo, ci basta usare il nome dell’array seguito dalle parentesi quadre con all’interno l’indice numerico a cui ci riferiamo (tenendo conto che l’indice parte da 0). Vediamo un esempio:
using System;
class Esempio{
public static void Main() {
// definisco la mia array
int[] myInts = { 5, 10, 15 };
// modifico il valore del primo elemento
myInts[0] = 12;
Console.WriteLine("Primo elemento: {0}", myInts[0]);
Console.ReadLine();
}
}
Nell’esempio qui sopra abbiamo modificato il primo valore (quello con indice zero) che passa da 5 a 12.
Se, invece, avessimo scritto:
myInts[3] = 12;
avremmo ricevuto un errore, poiché gli elementi dell’array sono solo 3 mente l’indice 3 starebbe ad indicare un quarto elemento che, invece, non esiste nella nostra array.
La cosa fondamentale, quando si definisce un array, è sempre specificare il numero di elementi di cui è composta. Vediamo un esempio:
// definisco la mia array
string[] myStrings = new string[2];
// Popolo la mia array
myStrings[0] = "primo elemento";
myStrings[1] = "secondo elemento";
Sopra vediamo un array di tipo stringa nella cui dichiarazione viene specificato il numero di elementi di cui è composto (nel nostro esempio sono 2).
Se invece avete necessità di gestire indici indefiniti potete ricorrere al ArrayList. Vediamo la sintassi:
ArrayList myList = new ArrayList();
Anche esso viene dichiarato tramite l’operatore new:
using System;
using System.Collections;
class Esempio
{
public static void Main()
{
ArrayList myList = new ArrayList();
myList.Add("Nuovo Valore");
Console.WriteLine("Primo elemento: {0}", myList[0]);
Console.WriteLine("Altri elementi: {0}", myList.Count);
Console.ReadLine();
}
}
Nell’esempio sopra abbiamo creato un array con arraylist e, in seguito, abbiamo utilizzato il metodo Add per aggiungere un elemento all’array specificandone il valore. La proprietà Count di questo costrutto è fondamentale per capire la dimensione del nostro arraylist.
Aggiungere, inserire e rimuovere elementi dall’array
Nell’esempio precedente abbiamo visto come aggiungere elementi ad un array utilizzando il metodo Add:
myList.Add("Nuovo Valore");
Al posto di Add, tuttavia, avremmo potuto aggiungere un elemento con la sintassi già vista sopra, cioè:
myList[0] = "Nuovo Valore";
Col metodo Add l’indice all’elemento è assegnato automaticamente mentre, in questo modo, deve essere dichiarato esplicitamente dallo sviluppatore.
Possiamo anche inserire un valore ad una certa posizione utilizzando il metodo Insert e, in questo caso, tutti gli elementi dell’arraylist vengono spostati di conseguenza.
myList.Insert(0,"Var1");
Per rimuovere un elemento da un array, invece, è possibile utilizzare il metodo Remove in questo modo:
myList.Remove("Nuovo Valore");
Nel caso sopra si rimuove l’elemento facendo riferimento non al suo indice ma al suo valore. Volendo eliminare un elemento dell’array specificandone l’indice si ricorre al metodo RemoveAt:
myList.RemoveAt(0);
Nel caso sopra abbiamo rimosso il primo elemento dell’arraylist. Se invece volessimo rimuovere tutti gli elementi dell’arraylist possiamo fare ricorso al metodo Clear in questo modo:
myList.Clear()