Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Visual Studio fornisce diversi refactoring per la conversione tra cicli ed espressioni LINQ. È possibile accedere a questi refactoring tramite il menu Azioni rapide e refactoring (CTRL+).).
Convertire un ciclo for in un'istruzione foreach
Applica a: C#, Visual Basic
Questo refactoring converte un ciclo for in un'istruzione foreach . È utile quando non è necessaria la variabile di ciclo come indice e si vuole semplificare il codice.
Annotazioni
Il refactoring dell'azione rapida Convert to foreach è disponibile solo per i cicli che contengono tutte e tre le parti: un inizializzatore, una condizione e un iteratore.
Posizionare il cursore nella
forparola chiave .Premere CTRL+oppure fare clic
del cacciavite a forma di cacciavite nel margine del file di codice.
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
Applica a: C#, Visual Basic
Questo refactoring converte un'istruzione foreach in un ciclo for . È utile quando è necessario usare la variabile di ciclo per più di accesso agli elementi o quando si esegue l'iterazione di una matrice multidimensionale.
Posizionare il cursore nella
foreachparola chiave oFor Each.Premere CTRL+oppure fare clic
del cacciavite a forma di cacciavite nel margine del file di codice.
Selezionare Converti in 'for'. In alternativa, selezionare Anteprima modifiche per aprire la finestra di dialogo Anteprima modifiche e quindi selezionare Applica.
Poiché il refactoring introduce una nuova variabile di conteggio iterazioni, la casella Rinomina viene visualizzata nell'angolo superiore destro dell'editor. Per scegliere un nome diverso per la variabile, digitarlo e quindi premere INVIO o selezionare Applica nella casella Rinomina . Se non si vuole scegliere un nuovo nome, premere ESC o selezionare Applica per chiudere la casella Rinomina .
Annotazioni
Per C#, il codice generato da questi refactoring usa un tipo esplicito o var per il tipo di elementi nella raccolta. Il tipo nel codice generato, esplicito o implicito, dipende dalle impostazioni di tipo codice incluse nell'ambito. Queste impostazioni specifiche dello stile di codice vengono configurate a livello di computer in Strumenti>Opzioni> Editor >di testoC#>Preferenze generali>> stile codice'var' o a livello di soluzione in un file EditorConfig. Se si modifica un'impostazione di tipo codice in Opzioni, riaprire il file di codice per rendere effettive le modifiche.
Convertire un ciclo foreach in LINQ
Si applica a: C#
Questo refactoring converte un ciclo foreach che usa un IEnumerable in una query LINQ o in un modulo di chiamata LINQ (noto anche come metodo LINQ).
Annotazioni
La sintassi LINQ è in genere meno efficiente di un ciclo foreach. È consigliabile tenere presente qualsiasi compromesso delle prestazioni che può verificarsi quando si usa LINQ per migliorare la leggibilità del codice.
Posizionare il cursore nella
foreachparola chiave .
Premere CTRL+ per attivare il menu Azioni rapide e refactoring.
Selezionare Converti in LINQ o Converti in Linq (modulo di chiamata).
Esempio di codice
using System.Collections.Generic;
public class Class1
{
public void MyMethod()
{
var greetings = new List<string>()
{ "hi", "yo", "hello", "howdy" };
IEnumerable<string> enumerable()
{
foreach (var greet in greetings)
{
if (greet.Length < 3)
{
yield return greet;
}
}
yield break;
}
}
}
Convertire l'istruzione LINQ in foreach
Applica a: C#, Visual Basic
Questo refactoring converte la sintassi di query LINQ in un'istruzione foreach .
Selezionare l'intera query LINQ a partire da
from.Annotazioni
Questo refactoring può essere usato solo per convertire le query LINQ espresse con la sintassi delle query e non con la sintassi del metodo.
Premere CTRL+oppure fare clic
nel margine del file di codice.
Selezionare Converti in 'foreach'. In alternativa, selezionare Anteprima modifiche per aprire la finestra di dialogo Anteprima modifiche e quindi selezionare Applica.
Annotazioni
Per C#, il codice generato da questi refactoring usa un tipo esplicito o var per la variabile di iterazione del foreach ciclo. Il tipo nel codice generato, esplicito o implicito, dipende dalle impostazioni di tipo codice incluse nell'ambito. Queste impostazioni specifiche dello stile di codice vengono configurate a livello di computer in Strumenti>Opzioni> Editor >di testoC#>Preferenze generali>> stile codice'var' o a livello di soluzione in un file EditorConfig. Se si modifica un'impostazione di tipo codice in Opzioni, riaprire il file di codice per rendere effettive le modifiche.
Semplificare l'espressione LINQ
Si applica a: C#
Questo refactoring semplifica le istanze di per SomeEnumerable.Single(<LambdaExpression>) e i metodi Enumerable seguenti: SingleOrDefault(), , First()Count()LastOrDefault()Last()Any()e .FirstOrDefault()Enumerable.Single()SomeEnumerableType.Where(<LambdaExpression>).Single()
La rimozione della chiamata non necessaria all'Enumerable per il .Where() metodo migliora la leggibilità e in alcuni casi le prestazioni.
Posizionare il cursore all'interno dell'istanza di
SomeEnumerableType.Where(<LambdaExpression>).Single()in Visual Studio.Premere CTRL+ per attivare il menu Azioni rapide e refactoring.
Selezionare Semplificare l'espressione LINQ.