Programmare in C# – Le liste (Lists)
Le liste in C#
Una lista (lists), in C#, rappresenta un elenco di oggetti fortemente tipizzato accessibile per indice. Fornisce metodi per la ricerca, l’ordinamento e la modifica degli elenchi.
Esempio:
[System.Serializable]
public class List<T> : System.Collections.Generic.ICollection<T>, System.Collections.Generic.IEnumerable<T>, System.Collections.Generic.IList<T>, System.Collections.Generic.IReadOnlyCollection<T>, System.Collections.Generic.IReadOnlyList<T>, System.Collections.IList
In questo tutorial, proveremo a sfruttare al massimo una struttura rendendola disponile per un nostro array customizzato.
Per comprendere al meglio basta seguire la procedura seguente.
Abbiamo spiegato come si dichiara una struttura di dati,
quindi dichiaramo, ad esempio, una struttura di gioco, giusto come un semplice esempio.
Struct Player { }
All’interno mettiamo le relative variabili che potremmo usare liberamente in un nostro giochino per esempio.
Struct Player {
public string PlayerName;
public int X;
public int Y;
}
Adesso avendo la nostra struttura di dati Denominata Player
possiamo dichiarare una Lista pubblica ancorandola alla strutura player.
Come possiamo fare?
List<player> giocatori = newList<player>();
Dichiariamola pubblica in modo che possiamo raggiungerla da ogni parte del nostro codice.
Ora che abbiamo la nostra lista non ci resta che effettuare qualche funzione.
Diciamo che se un utente clicca su “Start Game” allora noi dobbiamo aggiungere alla lista dei giocatori il nuovo utente che vuole giocare.
Basta semplicemente svolgere questa piccola funzione (dopo vi spiegheremo tutti i significati passo per passo):
Struct Player
{
public string PlayerName;
public int X;
public int Y;
}
List<player> giocatori = new List<player>();
private void ButtonClick(object senders, EventArgs e)
{
/* In questo punto ci basta ancorare la struttura
ad una nostra varibile in modo che possiamo lavorarci sopra
come abbiamo appreso nella lezione precedente
*/
player plr;
// Ora compiliamo la nostra struttura
plr.PlayerName = "IlMioNome";
plr.X = 0;
plr.Y= 0;
// Adesso che abbiamo compilato la nostra struttura virtuale
// adesso non ci resta che aggiungere l'intera struttura nella nostra lista
giocatori.add(plr);
}
Come avete appena appreso in questo tutorial, possiamo stravolgere le nostre strutture di dati e adeguarle alle nostre esigenze per permetterci di lavorare meglio ai nostri sorgenti.
Il recupero dei dati è identico al recupero di un semplicissimo array.
La differenza è che dobbiamo richiedere ovviamente l’index e in più l’opzione che deve restituirci.
Esempio:
int i = 0;
for (i = 0; i < giocatori.Count - 1; i++)
{
MessageBox.Show(Convert.ToString(giocatori[i].Playername));
MessageBox.Show(Convert.ToString(giocatori[i].X));
MessageBox.Show(Convert.ToString(giocatori[i].Y));
}
Ecco dunque come creare delle liste. Questo esempio vi sarà utile sia per la programmazione in C#, sia per Unity3D o Monogame.