Cosa Sono le Liste?

Immagina una situazione in cui si desidera memorizzare i nomi di tutti gli studenti che stanno frequentando un determinato corso. La prima soluzione che possiamo proporre è creare un Array:
index.cs
123456using System; class Program { string[] studentNames = new string[50]; }
Tuttavia, se a un certo punto ci sono più di 50 studenti, non saremo in grado di memorizzare i loro nomi. Allo stesso modo, in una situazione in cui ci sono meno di 50 studenti, gli spazi non occupati nell'array rappresenteranno uno spreco di memoria - questo diventa un problema soprattutto con array di grandi dimensioni.
Qui abbiamo bisogno di una nuova struttura che possa memorizzare una quantità variabile di elementi. Fortunatamente, una tale struttura esiste già, si chiama Lista.
Le Liste sono molto simili agli Array, tuttavia il numero di elementi memorizzati in una lista può variare.

È possibile modificare gli elementi esistenti in un Array, tuttavia non possiamo aggiungere nuove voci ad esso.
La seguente è la sintassi per dichiarare una lista vuota:

Utilizzando questa sintassi è possibile creare una lista per memorizzare i nomi degli studenti:
index.cs
12345678910using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); } }
È importante notare che è necessario importare il modulo Generic
per poter utilizzare le Liste.
index.cs
1using System.Collections.Generic;
È sufficiente aggiungere questa riga sotto using System;
per importare il modulo richiesto.
Metodo Add()
Possiamo aggiungere elementi a una lista utilizzando il metodo Add
:
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); } }
Il codice sopra aggiungerà quattro elementi alla lista students
.
Così come un array di tipo string
può contenere solo elementi di tipo string
, una lista di tipo string
può accettare solo elementi di tipo string
.
Indicizzazione
Il primo elemento è Anna
, quindi avrà l'indice 0
, mentre Laura
avrà l'indice 1
e così via. Gli elementi di una lista possono essere accessibili tramite indicizzazione proprio come in un array:
index.cs
1234567891011121314151617using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); Console.WriteLine(students[2]); } }
Metodo Count()
È possibile ottenere la lunghezza di una lista utilizzando l'attributo Count
:
index.cs
123456789101112131415161718using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); Console.WriteLine(students[2]); Console.WriteLine(students.Count); } }
Lunghezza Dinamica
Nota che la lunghezza di una lista è dinamica (modificabile), quindi cambia man mano che aggiungiamo elementi:
index.cs
1234567891011121314151617181920using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); Console.WriteLine(students.Count); students.Add("Anna"); Console.WriteLine(students.Count); students.Add("Laura"); Console.WriteLine(students.Count); students.Add("Jacob"); Console.WriteLine(students.Count); students.Add("Aron"); Console.WriteLine(students.Count); } }
Inizializzazione
Possiamo anche inizializzare una lista con alcuni elementi utilizzando la seguente sintassi:
List<dataType> listName = new List<dataType>{ element1, element2, … };
index.cs
12345678910111213141516using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; // It is still possible to add additional elements after initialization students.Add("Markus"); Console.WriteLine(students.Count); Console.WriteLine(students[4]); } }
Iterazione sulle liste
Iterazione su una List in modo simile a come si esegue un ciclo su un Array
Utilizzo di un ciclo for
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; for (int i = 0; i < students.Count; i++) { Console.WriteLine(students[i]); } } }
Utilizzo di un ciclo foreach
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; foreach (string studentName in students) { Console.WriteLine(studentName); } } }
Per rendere la sintassi di dichiarazione più breve, possiamo anche utilizzare la dichiarazione implicita. Ricordiamo che una dichiarazione esplicita consiste nello specificare il tipo di dato durante la dichiarazione della variabile.
index.cs
1float number = 7.9f;
D'altra parte, con la dichiarazione implicita possiamo semplicemente utilizzare la parola chiave var
e il compilatore deduce automaticamente il tipo di dato della variabile in base al valore assegnato:
index.cs
1var number = 7.9f;
È possibile utilizzare la dichiarazione implicita anche durante la dichiarazione delle liste:
index.cs
1var numbers = new List<int> { 1, 2, 3, 4, 5 };
1. Quale sarà l'output del seguente codice:
2. Quale modulo deve essere importato per utilizzare le liste?
3. Quale metodo viene utilizzato per ottenere la dimensione (lunghezza) di una lista?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
What is the difference between an array and a list in C#?
Can you show an example of how to add elements to a list?
How do I access elements in a list using indexing?
Awesome!
Completion rate improved to 2.04
Cosa Sono le Liste?
Scorri per mostrare il menu

Immagina una situazione in cui si desidera memorizzare i nomi di tutti gli studenti che stanno frequentando un determinato corso. La prima soluzione che possiamo proporre è creare un Array:
index.cs
123456using System; class Program { string[] studentNames = new string[50]; }
Tuttavia, se a un certo punto ci sono più di 50 studenti, non saremo in grado di memorizzare i loro nomi. Allo stesso modo, in una situazione in cui ci sono meno di 50 studenti, gli spazi non occupati nell'array rappresenteranno uno spreco di memoria - questo diventa un problema soprattutto con array di grandi dimensioni.
Qui abbiamo bisogno di una nuova struttura che possa memorizzare una quantità variabile di elementi. Fortunatamente, una tale struttura esiste già, si chiama Lista.
Le Liste sono molto simili agli Array, tuttavia il numero di elementi memorizzati in una lista può variare.

È possibile modificare gli elementi esistenti in un Array, tuttavia non possiamo aggiungere nuove voci ad esso.
La seguente è la sintassi per dichiarare una lista vuota:

Utilizzando questa sintassi è possibile creare una lista per memorizzare i nomi degli studenti:
index.cs
12345678910using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); } }
È importante notare che è necessario importare il modulo Generic
per poter utilizzare le Liste.
index.cs
1using System.Collections.Generic;
È sufficiente aggiungere questa riga sotto using System;
per importare il modulo richiesto.
Metodo Add()
Possiamo aggiungere elementi a una lista utilizzando il metodo Add
:
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); } }
Il codice sopra aggiungerà quattro elementi alla lista students
.
Così come un array di tipo string
può contenere solo elementi di tipo string
, una lista di tipo string
può accettare solo elementi di tipo string
.
Indicizzazione
Il primo elemento è Anna
, quindi avrà l'indice 0
, mentre Laura
avrà l'indice 1
e così via. Gli elementi di una lista possono essere accessibili tramite indicizzazione proprio come in un array:
index.cs
1234567891011121314151617using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); Console.WriteLine(students[2]); } }
Metodo Count()
È possibile ottenere la lunghezza di una lista utilizzando l'attributo Count
:
index.cs
123456789101112131415161718using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); Console.WriteLine(students[2]); Console.WriteLine(students.Count); } }
Lunghezza Dinamica
Nota che la lunghezza di una lista è dinamica (modificabile), quindi cambia man mano che aggiungiamo elementi:
index.cs
1234567891011121314151617181920using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); Console.WriteLine(students.Count); students.Add("Anna"); Console.WriteLine(students.Count); students.Add("Laura"); Console.WriteLine(students.Count); students.Add("Jacob"); Console.WriteLine(students.Count); students.Add("Aron"); Console.WriteLine(students.Count); } }
Inizializzazione
Possiamo anche inizializzare una lista con alcuni elementi utilizzando la seguente sintassi:
List<dataType> listName = new List<dataType>{ element1, element2, … };
index.cs
12345678910111213141516using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; // It is still possible to add additional elements after initialization students.Add("Markus"); Console.WriteLine(students.Count); Console.WriteLine(students[4]); } }
Iterazione sulle liste
Iterazione su una List in modo simile a come si esegue un ciclo su un Array
Utilizzo di un ciclo for
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; for (int i = 0; i < students.Count; i++) { Console.WriteLine(students[i]); } } }
Utilizzo di un ciclo foreach
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; foreach (string studentName in students) { Console.WriteLine(studentName); } } }
Per rendere la sintassi di dichiarazione più breve, possiamo anche utilizzare la dichiarazione implicita. Ricordiamo che una dichiarazione esplicita consiste nello specificare il tipo di dato durante la dichiarazione della variabile.
index.cs
1float number = 7.9f;
D'altra parte, con la dichiarazione implicita possiamo semplicemente utilizzare la parola chiave var
e il compilatore deduce automaticamente il tipo di dato della variabile in base al valore assegnato:
index.cs
1var number = 7.9f;
È possibile utilizzare la dichiarazione implicita anche durante la dichiarazione delle liste:
index.cs
1var numbers = new List<int> { 1, 2, 3, 4, 5 };
1. Quale sarà l'output del seguente codice:
2. Quale modulo deve essere importato per utilizzare le liste?
3. Quale metodo viene utilizzato per ottenere la dimensione (lunghezza) di una lista?
Grazie per i tuoi commenti!