Skip to main content

valerioditommaso.dev

Le liste
Panoramica

Le liste

18 febbraio 2026
4 min di lettura

A differenza di una variabile che contiene un solo valore, una lista è un insieme di valori di uno stesso tipo.
Le liste in Dart sono dinamici, quindi non ne si deve obbligatoriamente definire una grandezza limite alla definizione e possono essere rimpicciolite o ingrandite in qualunque momento nel codice.

Esempi di liste:

void main(List<String> arguments) {
List<int> prova = [1, 2, 3, 4, 5];
List<String> prova = [1, 2, 3, 4, 5];
List<double> prova = [1, 2, 3, 4, 5];
List<bool> prova = [1, 2, 3, 4, 5];
var prova = [1, 2, "mario", false, true];
List<Object> prova = [1, 2, "luigi", false, true];
}

Le Liste null e i loro contenuti null

Ci sono due differenze da dover individuare per gestire le liste con null:

  1. La Lista stessa, può essere null.
  2. Un elemento della lista può essere null.

Esempio:

// La lista può contenere un elemento null
List<Object?> prova = [1, 2, "luigi", false, true, null];
// La lista può essere null:
List<Object>? prova = [1, 2, "luigi", false, true];
List<Object>? prova;
// La lista può essere null e può anche contenere elementi che possono essere null:
List<Object?>? prova = [1, 2, "luigi", false, true, null];
List<Object?>? prova;

Stampare l’elemento di una lista

void main(List<String> arguments) {
List<int> prova = [1, 2, 3, 4, 5];
print(prova[1]);
}

L’output è:

2

Stampare una lista

void main(List<String> arguments) {
List<int> prova = [1, 2, 3, 4, 5];
print(prova);
}

L’output è:

[1, 2, 3, 4, 5]

Aggiungere elementi ad una Lista

Con .add()

void main(List<String> arguments) {
List<int> prova = [1, 2, 3, 4, 5];
prova.add(7)
print(prova);
}

L’output è:

[1, 2, 3, 4, 5, 7]

Con .addAll()

void main(List<String> arguments) {
List<int> prova = [1, 2, 3, 4, 5];
List<int> pippo = [11, 12, 13];
prova.addAll(pippo);
print(prova);
}

L’output è:

[1, 2, 3, 4, 5, 11, 12, 13]

Con lo spread operator ...

void main(List<String> arguments) {
List<int> pippo = [11, 12, 13];
List<int> prova = [1, 2, 3, 4, 5, ...pippo];
print(prova);
}

L’output è:

[1, 2, 3, 4, 5, 11, 12, 13]

Aggiungere elementi con la concatenazione (Cascade operator)

void main(List<String> arguments) {
List<int> prova = [1, 2, 3, 4, 5]..add(6)..add(7)..add(8)..add(9);
print(prova);
}

Si può fare anche su più righe:

void main(List<String> arguments) {
List<int> prova = [1, 2, 3, 4, 5]
..add(6)
..add(7)
..add(8)
..add(9);
print(prova);
}

Rimuovere elementi ad una lista

Rimuovere per valore

void main(List<String> arguments) {
List<int> prova = [1, 2, 3, 4, 5];
prova.remove(2);
print(prova);
}
[1, 3, 4, 5]

Rimuovere per indice

void main(List<String> arguments) {
List<int> prova = [1, 2, 3, 4, 5];
prova.removeAt(2);
print(prova);
}
[1, 2, 4, 5]

Rimuovere tutti gli elementi di una lista

void main(List<String> arguments) {
List<int> prova = [1, 2, 3, 4, 5];
prova.clear();
print(prova);
}
[]

Come iterare una lista con forEach()

La funzione .forEach() è un ciclo for che itera per ogni elemento all’interno di un qualcosa di iterabile, come la lista.
Nell’esempio riportato sotto, viene definita una variabile chiamata “item”, che all’interno della funzione, seguita dalla freccia con l’uguale significa: Per ogni elemento che si chiama “item”, stampa la lista “prova”.

void main(List<String> arguments) {
List<int> prova = [1, 2, 3, 4, 5];
prova.forEach((item)=>{
print(prova);
});
}
1
2
3
4
5

Altre funzioni per le liste

.indexOf()

Restituisce l’indice corrispondente all’elemento della lista passata per argomento (se esiste).

void main(List<String> arguments) {
List<int> prova = [1, 2, 3, 4, 5];
print(prova.indexOf(4));
}
3

Collection if e Collection for

Collection if

Permette di inserire un elemento ad una lista sulla base di una condizione.

void main(List<String> arguments) {
bool maschio = false;
List<String> nomi = [
"Federico",
"Carlo",
if(maschio) "Valerio" else "Anastasia",
"Claudio"
];
print(nomi);
}
[Federico, Carlo, Anastasia, Claudio]

Collection for

Permette di inserire uno o più elementi ad una lista attraverso l’uso di un ciclo for.

void main(List<String> arguments) {
List<int> numeri = [1, 2, 3, 4, 5, 6, 7, 8, 9];
List<String> nomi = [
"Numero 0",
for(int i in numeri) "Numero $i",
"Numero 10"
];
print(nomi);
}
[Numero 0, Numero 1, Numero 2, Numero 3, Numero 4, Numero 5, Numero 6, Numero 7, Numero 8, Numero 9, Numero 10]