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.
Questo refactoring si applica a:
- C#
Che cosa: Consente di convertire facilmente il ciclo foreach che utilizza un IEnumerable in una query LINQ o in un modulo di chiamata LINQ (noto anche come metodo LINQ).
Quando: Si dispone di un ciclo foreach che utilizza un IEnumerable e si desidera che tale ciclo venga letto come query LINQ.
Perché: Si preferisce utilizzare la sintassi LINQ anziché un ciclo foreach. LINQ inserisce una query in un costrutto di linguaggio di prima classe in C#. LINQ consente di ridurre la quantità di codice in un file, di semplificare la lettura del codice e di consentire a origini dati diverse di avere modelli di espressione di query simili.
Annotazioni
La sintassi LINQ è in genere meno efficiente di un ciclo foreach. È bene essere consapevoli di eventuali compromessi in termini di prestazioni che potrebbero verificarsi quando si utilizza LINQ per migliorare la leggibilità del codice.
Convertire un ciclo foreach in refactoring LINQ
Posiziona il
foreach
cursore sulla parola chiave.Premere CTRL+per attivare il menu Azioni rapide e refactoring.
Selezionare Converti in LINQ o Converti in Linq (modulo di chiamata).
Codice di esempio
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;
}
}
}