Guida per Principianti sugli Array in C

Ciao lì, aspirante programmatore! Oggi ci imbarcheremo in un viaggio emozionante nel mondo degli array in C#. Immagina gli array come un contenitore magico che può contenere più elementi dello stesso tipo. È come avere una scatola delle tue cioccolate preferite, ma invece di cioccolate, stiamo memorizzando dati!

C# - Arrays

Cos'è un Array?

Prima di addentrarci nei dettagli, capiremo cos'è un array. Un array è una struttura dati che ti permette di memorizzare più valori dello stesso tipo in una singola variabile. Immagina di essere un insegnante (come me!) e vuoi memorizzare i voti di 30 studenti. Invece di creare 30 variabili separate, puoi utilizzare un singolo array per contenere tutti questi voti. Non è fantastico?

Dichiarazione degli Array

Iniziamo con le basi: come dichiarare un array. La sintassi è abbastanza semplice:

dataType[] arrayName;

Per esempio, se vogliamo dichiarare un array di interi, scriveremmo:

int[] grades;

Questa linea dice a C# che stiamo creando un array chiamato grades che conterrà valori interi. Ma ricorda, a questo punto, non abbiamo specificato quanti voti vogliamo memorizzare o quali sono quei voti.

Inizializzazione degli Array

Ora che abbiamo dichiarato il nostro array, diamogli una dimensione. Possiamo farlo in diversi modi:

Metodo 1: Specificare la Dimensione

int[] grades = new int[5];

Questo crea un array che può contenere 5 valori interi. Inizialmente, tutti gli elementi saranno impostati sul valore predefinito per gli interi, che è 0.

Metodo 2: Inizializzare con Valori

int[] grades = new int[] { 85, 92, 78, 95, 88 };

Qui, stiamo creando l'array e immediatamente riempiendolo con valori. C# è abbastanza intelligente da capire che vogliamo un array di 5 elementi in base ai valori che abbiamo fornito.

Assegnazione di Valori a un Array

Supponiamo di aver creato il nostro array utilizzando il Metodo 1, e ora vogliamo aggiungere alcuni voti. Possiamo farlo accedendo a ciascun elemento dell'array utilizzando il suo indice:

grades[0] = 85;  // Primo voto
grades[1] = 92;  // Secondo voto
grades[2] = 78;  // Terzo voto
grades[3] = 95;  // Quarto voto
grades[4] = 88;  // Quinto voto

Ricorda, gli indici degli array in C# (e nella maggior parte dei linguaggi di programmazione) iniziano da 0, non da 1. Quindi, il primo elemento è all'indice 0, il secondo all'indice 1, e così via.

Accesso agli Elementi dell'Array

Per accedere agli elementi di un array, utilizziamo la stessa notazione a parentesi quadre:

int firstGrade = grades[0];  // Questo ci darà 85
int thirdGrade = grades[2];  // Questo ci darà 78

Ecco un piccolo programma che mette tutto questo insieme:

int[] grades = new int[5];

grades[0] = 85;
grades[1] = 92;
grades[2] = 78;
grades[3] = 95;
grades[4] = 88;

Console.WriteLine("I voti sono:");
for (int i = 0; i < grades.Length; i++)
{
Console.WriteLine($"Studente {i + 1}: {grades[i]}");
}

Questo programma stamperà:

I voti sono:
Studente 1: 85
Studente 2: 92
Studente 3: 78
Studente 4: 95
Studente 5: 88

Uso del Ciclo foreach

C# fornisce un comodo ciclo foreach che rende l'iterazione sugli array un gioco da ragazzi. Riwrite l'esempio precedente utilizzando foreach:

int[] grades = new int[] { 85, 92, 78, 95, 88 };

Console.WriteLine("I voti sono:");
int studentNumber = 1;
foreach (int grade in grades)
{
Console.WriteLine($"Studente {studentNumber}: {grade}");
studentNumber++;
}

Il ciclo foreach itera automaticamente attraverso ciascun elemento nell'array, assegnandolo alla variabile grade in ogni iterazione. È un metodo più pulito e leggibile per passare attraverso tutti gli elementi di un array.

Array Multidimensionali

Finora, abbiamo lavorato con array unidimensionali. Ma cosa succede se vogliamo creare un registro dei voti per più materie? È qui che entrano in gioco gli array multidimensionali. Creiamo un array bidimensionale per memorizzare i voti di 3 studenti in 4 materie:

int[,] gradeBook = new int[3, 4]
{
{ 85, 92, 78, 95 },
{ 80, 89, 93, 87 },
{ 76, 88, 91, 84 }
};

Console.WriteLine("Registro dei voti:");
for (int i = 0; i < 3; i++)
{
Console.Write($"Studente {i + 1}: ");
for (int j = 0; j < 4; j++)
{
Console.Write($"{gradeBook[i, j]} ");
}
Console.WriteLine();
}

Questo stamperà:

Registro dei voti:
Studente 1: 85 92 78 95
Studente 2: 80 89 93 87
Studente 3: 76 88 91 84

Metodi degli Array

C# fornisce diversi metodi utili per lavorare con gli array. Ecco alcuni dei più comuni:

Metodo Descrizione Esempio
Array.Sort() Ordina gli elementi in un array Array.Sort(grades);
Array.Reverse() Inverte l'ordine degli elementi in un array Array.Reverse(grades);
Array.Find() Trova il primo elemento che soddisfa i criteri specificati int firstPassingGrade = Array.Find(grades, grade => grade >= 60);
Array.FindAll() Trova tutti gli elementi che soddisfano i criteri specificati int[] passingGrades = Array.FindAll(grades, grade => grade >= 60);
Array.IndexOf() Restituisce l'indice della prima occorrenza di un valore int index = Array.IndexOf(grades, 95);

Ecco un esempio rapido che utilizza alcuni di questi metodi:

int[] grades = new int[] { 85, 92, 78, 95, 88 };

Array.Sort(grades);
Console.WriteLine("Voti ordinati:");
foreach (int grade in grades)
{
Console.Write($"{grade} ");
}
Console.WriteLine();

int highestGrade = grades[grades.Length - 1];
Console.WriteLine($"Il voto più alto è: {highestGrade}");

int lowestGrade = grades[0];
Console.WriteLine($"Il voto più basso è: {lowestGrade}");

Questo programma stamperà:

Voti ordinati:
78 85 88 92 95
Il voto più alto è: 95
Il voto più basso è: 78

Ecco fatto! Hai completato un tour rapidissimo degli array in C#. Ricorda, la pratica rende perfetti, quindi non aver paura di sperimentare con questi concetti. Prova a creare diversi tipi di array, gioca con gli array multidimensionali e esplora i vari metodi degli array. Prima di sapere, sarai un mago degli array, evocando strutture dati complesse con facilità!

Buon coding, futuri programmatori! ??

Credits: Image by storyset