Condividi tramite


Effettuare il refactoring per convertire un ciclo for in un'istruzione foreach e viceversa

Questo articolo descrive i refactoring di Azioni rapide per eseguire la conversione tra due strutture di ciclo. Include alcuni motivi per cui si potrebbe voler passare da un ciclo for a un'istruzione foreach nel codice.

Convertire un ciclo for in un'istruzione foreach

Se il codice contiene un ciclo for, è possibile usare questo refactoring per convertirlo in un'istruzione foreach.

Questo refactoring si applica a:

  • C#

  • Visual Basic

Nota

Il refactoring di Azioni rapide Converti in foreach è disponibile solo per i cicli for che contengono tutte le tre parti: un inizializzatore, una condizione e un iteratore.

Perché eseguire la conversione

Di seguito sono riportati alcuni motivi per cui può essere opportuno convertire un ciclo for in un'istruzione foreach:

  • Non si usa la variabile di ciclo locale all'interno del ciclo se non come indice per accedere agli elementi.

  • Si vuole semplificare il codice e ridurre la probabilità di errori logici nelle sezioni di inizializzatore, condizione e iteratore.

Modalità d'uso

  1. Posizionare il punto di inserimento nella parola chiave for.

  2. Premere CTRL+ oppure fare clic sull'icona del cacciavite Screwdriver icon nel margine del file di codice.

    Convert to foreach menu

  3. Selezionare Converti in foreach. In alternativa, selezionare Anteprima modifiche per aprire la finestra di dialogo Anteprima modifiche e quindi selezionare Applica.

Convertire un'istruzione foreach in un ciclo for

Se il codice contiene un'istruzione foreach (C#) o For Each...Next (Visual Basic), è possibile usare questo refactoring per convertirla in un ciclo for.

Questo refactoring si applica a:

  • C#

  • Visual Basic

Perché eseguire la conversione

Di seguito sono riportati alcuni motivi per cui può essere opportuno convertire un'istruzione foreach in un ciclo for:

  • Si vuole usare una variabile di ciclo locale all'interno del ciclo per altre azioni oltre all'accesso all'elemento.

  • Si scorre una matrice multidimensionale e si vuole avere un maggiore controllo sugli elementi della matrice.

Modalità d'uso

  1. Posizionare il punto di inserimento nella parola chiave foreach o For Each.

  2. Premere CTRL+ oppure fare clic sull'icona del cacciavite Screwdriver icon nel margine del file di codice.

    Convert to for menu

  3. Selezionare Converti in for. In alternativa, selezionare Anteprima modifiche per aprire la finestra di dialogo Anteprima modifiche e quindi selezionare Applica.

  4. Poiché il refactoring introduce una nuova variabile Numero di iterazioni, la casella Rinomina appare nell'angolo superiore destro dell'editor. Se si vuole scegliere un nome diverso per la variabile, digitarlo in e quindi premere INVIO oppure selezionare Applica nella casella Rinomina. Se non si vuole scegliere un nuovo nome, premere ESC oppure selezionare Applica per chiudere la casella Rinomina.

Nota

Per C#, il codice generato da questi refactoring usa un tipo esplicito o var per il tipo degli elementi nella raccolta. Il tipo nel codice generato, esplicito o implicito, dipende dalle impostazioni di stile del codice che rientrano nell'ambito. Queste impostazioni specifiche dello stile di codice vengono configurate a livello di computer in Strumenti>Opzioni>Editor>di testo C#>Preferenze generali>> stile codice'var' o a livello di soluzione in un file EditorConfig. Se si modifica un'impostazione di stile del codice in Opzioni, riaprire il file di codice per rendere effettive le modifiche.

Vedi anche