Share via


Semplificare l'espressione LINQ

Questo refactoring si applica a:

  • C#

Cosa: esegue il refactoring delle istanze di SomeEnumerableType.Where(<LambdaExpression>).Single() a SomeEnumerable.Single(<LambdaExpression>) per Enumerable.Single() e i metodi Enumerable seguenti: SingleOrDefault(), Last(), LastOrDefault(), Count()Any(), First(), e FirstOrDefault().

Quando: tutte le istanze in cui il metodo chiama Single(), SingleOrDefault()e così via, non hanno argomenti e sono precedute da un'espressione Where() . L'input dell'espressione Where() non può essere costruito come albero delle espressioni.

Perché: la rimozione della chiamata non necessaria all'Enumerable per il .Where() metodo migliora la leggibilità e in alcuni casi le prestazioni, vedere le osservazioni.

Procedure

  1. Posizionare il cursore all'interno dell'istanza SomeEnumerableType.Where(<LambdaExpression>).Single() in Visual Studio.

  2. Premere CTRL+ per attivare il menu Azioni rapide e refactoring.

  3. Selezionare Semplificare l'espressione LINQ

    Convert typeof to nameof

Osservazioni:

In alcuni casi questo refactoring può ridurre le prestazioni. Le operazioni LINQ su List<T> e T[] non sono ottimizzate in questo caso e comportano prestazioni peggiori.

Vedi anche