Upraszczanie wyrażenia LINQ
Ta refaktoryzacja ma zastosowanie do:
- C#
Co: Refaktoryzuje wystąpienia SomeEnumerableType.Where(<LambdaExpression>).Single()
elementu do SomeEnumerable.Single(<LambdaExpression>)
, Enumerable.Single()
a także następujące metody wyliczalne: SingleOrDefault()
, , Last()
, LastOrDefault()
Any()
, Count()
First()
, i FirstOrDefault()
.
Gdy: wszystkie wystąpienia, w których metoda wywołuje Single()
metodę , SingleOrDefault()
i tak dalej, nie ma żadnych argumentów i jest poprzedzona wyrażeniem Where()
. Nie można skonstruować danych wejściowych Where()
wyrażenia jako drzewa wyrażeń.
Dlaczego: Usunięcie niepotrzebnego wywołania metody Enumerable .Where()
dla metody zwiększa czytelność i w niektórych przypadkach wydajność, zobacz uwagi.
Porady
Umieść kursor w wystąpieniu
SomeEnumerableType.Where(<LambdaExpression>).Single()
w programie Visual Studio.Naciśnij klawisze Ctrl+, aby wyzwolić menu Szybkie akcje i refaktoryzacje.
Wybierz pozycję Uprość wyrażenie LINQ
Uwagi
W niektórych przypadkach refaktoryzacja może zmniejszyć wydajność. Operacje LINQ na List<T>
systemach i T[]
nie są zoptymalizowane w tym przypadku i powodują pogorszenie wydajności.