Zjednodušení výrazu LINQ

Toto refaktoring se vztahuje na:

  • C#

Co: Refaktoruje SomeEnumerableType.Where(<LambdaExpression>).Single() instance pro SomeEnumerable.Single(<LambdaExpression>)Enumerable.Single() a také následující výčtové metody: SingleOrDefault(), Last(), LastOrDefault(), Any(), Count()First()a FirstOrDefault().

When: Všechny instance, kde metoda volá Single(), SingleOrDefault()a tak dále, nemá žádné argumenty a předchází Where() výrazu. Vstup výrazu Where() nelze vytvořit jako strom výrazu.

Proč: Odebrání nepotřebného volání výčtu pro metodu .Where() zlepšuje čitelnost a v některých případech výkon, viz poznámky.

Postupy

  1. Umístěte kurzor do SomeEnumerableType.Where(<LambdaExpression>).Single() instance v sadě Visual Studio.

  2. Stisknutím klávesy Ctrl+. aktivujte nabídku Rychlé akce a refaktoringy.

  3. Výběr možnosti Zjednodušit výraz LINQ

    Convert typeof to nameof

Poznámky

V některých případech může toto refaktoring snížit výkon. Operace List<T>T[] LINQ v tomto případě nejsou optimalizované a vedou k horšímu výkonu.

Viz také