Esercizio - Implementare l'istruzione foreach

Completato

Si supponga di lavorare per un'azienda di produzione. L'azienda deve completare un inventario del magazzino per determinare il numero di prodotti pronti per la spedizione. Oltre al numero totale di prodotti completati, è necessario segnalare il numero di prodotti completati archiviati in ogni singolo contenitore nel magazzino, insieme a un totale aggiornato. Questo totale aggiornato verrà usato per creare un audit trail in modo da poter controllare di nuovo il lavoro e identificare la "compattazione".

Scorrere ciclicamente una matrice tramite foreach

L'istruzione foreach offre un metodo semplice e diretto per scorrere gli elementi di una matrice. L'istruzione foreach elabora gli elementi della matrice in ordine di indice crescente, a partire dall'indice 0 e terminando con l'indice Lunghezza - 1. Usa una variabile temporanea per contenere il valore dell'elemento della matrice associato all'iterazione corrente. Ogni iterazione eseguirà il blocco di codice che si trova sotto la dichiarazione foreach.

Ecco un semplice esempio:

string[] names = { "Rowena", "Robin", "Bao" };
foreach (string name in names)
{
    Console.WriteLine(name);
}

Sotto la parola chiave foreach, il blocco di codice che contiene Console.WriteLine(name); verrà eseguito una volta per ogni elemento della matrice names. Quando il runtime .NET scorre ciclicamente ogni elemento della matrice, il valore archiviato nell'elemento corrente della matrice names viene assegnato alla variabile temporanea name per semplificare l'accesso all'interno del blocco di codice.

Se si esegue il codice, viene visualizzato il risultato seguente.

Rowena
Robin
Bao

Usare l'istruzione foreach per creare una somma di tutti gli articoli disponibili in ogni contenitore nel magazzino.

Creare e inizializzare una matrice di int

  1. Assicurarsi che in Visual Studio Code sia aperto un file Program.cs vuoto.

    Se necessario, aprire Visual Studio Code, quindi completare la procedura seguente per preparare un file Program.cs nell'editor:

    1. Nel menu File selezionare Apri cartella.

    2. Usare la finestra di dialogo Apri cartella per passare alla cartella CsharpProjects e quindi aprila.

    3. Nel pannello ESPLORA RISORSE di Visual Studio Code, selezionare Program.cs.

    4. Nel menu Selezione di Visual Studio Code selezionare Seleziona tutto e quindi premere CANC.

  2. Per creare una matrice di tipo int che archivia il numero di prodotti completati in ogni contenitore, immettere il codice seguente:

    int[] inventory = { 200, 450, 700, 175, 250 };
    

Aggiungere un'istruzione foreach per eseguire l'iterazione della matrice

  1. Per creare un'istruzione foreach che esegue l'iterazione di ogni elemento della matrice inventory, immettere il codice seguente:

    foreach (int items in inventory)
    {
    
    }
    

    Si noti che l'istruzione foreach assegna temporaneamente il valore dell'elemento della matrice corrente a una variabile int denominata items.

  2. Verificare che il codice corrisponda al seguente:

    int[] inventory = { 200, 450, 700, 175, 250 };
    
    foreach (int items in inventory)
    {
    
    }
    

Aggiungere una variabile per sommare il valore di ogni elemento nella matrice

  1. Posizionare il cursore sulla riga di codice vuota sopra l'istruzione foreach.

  2. Per dichiarare una nuova variabile che rappresenta la somma di tutti i prodotti completati nel magazzino, immettere il codice seguente:

    int sum = 0;
    

    Assicurarsi di dichiarare la variabile all'esterno dell'istruzione foreach.

  3. Posizionare il cursore all'interno del blocco di codice dell'istruzione foreach.

  4. Per aggiungere il valore corrente archiviato in items alla variabile sum, immettere il codice seguente:

    sum += items;
    
  5. Verificare che il codice corrisponda al seguente:

    int[] inventory = { 200, 450, 700, 175, 250 };
    int sum = 0;
    foreach (int items in inventory)
    {
        sum += items;
    }
    

Visualizzare il valore finale della somma

  1. Creare una riga di codice vuota sotto il blocco di codice dell'istruzione foreach.

  2. Per segnalare la somma finale di elementi nell'inventario, immettere il codice seguente:

    Console.WriteLine($"We have {sum} items in inventory.");
    
  3. Verificare che il codice corrisponda al seguente:

    int[] inventory = { 200, 450, 700, 175, 250 };
    int sum = 0;
    foreach (int items in inventory)
    {
        sum += items;
    }
    
    Console.WriteLine($"We have {sum} items in inventory.");
    
  4. Fare clic su Salva nel menu File di Visual Studio Code.

  5. Nel pannello ESPLORA RISORSE per aprire un terminale nel percorso della cartella TestProject, fare clic con il pulsante destro del mouse su TestProject e quindi scegliere Apri nel terminale integrato.

  6. Al prompt dei comandi del terminale digitare dotnet run e quindi premere INVIO.

    We have 1775 items in inventory.
    

Creare una variabile per contenere il numero del contenitore corrente e visualizzare il totale aggiornato

Per soddisfare il requisito finale del progetto di report dell'inventario, sarà necessario creare una variabile che conterrà l'iterazione corrente dell'istruzione foreach in modo che sia possibile visualizzare il contenitore e il numero di prodotti finiti in tale contenitore, insieme al totale aggiornato di tutti i prodotti dei contenitori conteggiati finora.

  1. Creare una riga di codice vuota sopra l'istruzione foreach.

  2. Per dichiarare la variabile int denominata bin inizializzata in 0, immettere il codice seguente:

    int bin = 0;
    

    Si userà bin per archiviare il numero del contenitore il cui inventario è attualmente in fase di elaborazione.

  3. All'interno del blocco di codice foreach, per incrementare bin ogni volta che viene eseguito il blocco di codice, immettere il codice seguente:

    bin++;
    

    Si noti che si usa l'operatore ++ per incrementare il valore della variabile di 1. Si tratta di un collegamento per bin = bin + 1.

  4. Per segnalare il numero di contenitore, il numero di prodotti completati nel contenitore e il totale aggiornato dei prodotti completati, immettere il codice seguente all'interno del blocco di codice foreach, dopo bin++;:

    Console.WriteLine($"Bin {bin} = {items} items (Running total: {sum})");
    

    Questo codice userà la variabile contatore bin, la variabile foreach temporanea items e la variabile sumper segnalare lo stato corrente dell'inventario in un messaggio ben formattato.

  5. Verificare che il codice corrisponda al seguente:

    int[] inventory = { 200, 450, 700, 175, 250 };
    int sum = 0;
    int bin = 0;
    foreach (int items in inventory)
    {
        sum += items;
        bin++;
        Console.WriteLine($"Bin {bin} = {items} items (Running total: {sum})");
    }
    Console.WriteLine($"We have {sum} items in inventory.");
    
  6. Salvare le modifiche al file Program.cs e quindi eseguire l'applicazione.

    Verrà visualizzato l'output seguente:

    Bin 1 = 200 items (Running total: 200)
    Bin 2 = 450 items (Running total: 650)
    Bin 3 = 700 items (Running total: 1350)
    Bin 4 = 175 items (Running total: 1525)
    Bin 5 = 250 items (Running total: 1775)
    We have 1775 items in inventory.
    

Riepilogo

Ecco alcuni aspetti da ricordare sulle istruzioni foreach e sull'incremento dei valori appreso in questa unità:

  • Usare l'istruzione foreach per eseguire l'iterazione di ogni elemento di una matrice, eseguendo il blocco di codice associato una volta per ogni elemento nella matrice.
  • L'istruzione foreach imposta il valore dell'elemento corrente nella matrice su una variabile temporanea, che è possibile usare nel corpo del blocco di codice.
  • Usare l'operatore di incremento ++ per aggiungere 1 al valore corrente di una variabile.