Vereinfachen von LINQ-Ausdrücken
Dieses Refactoring gilt für:
- C#
Beschreibung: Führt Refactoring von Instanzen von SomeEnumerableType.Where(<LambdaExpression>).Single()
in SomeEnumerable.Single(<LambdaExpression>)
für Enumerable.Single()
sowie die folgenden Enumerable-Methoden aus: SingleOrDefault()
, Last()
, LastOrDefault()
, Any()
, Count()
, First()
und FirstOrDefault()
.
Hintergrund: Alle Instanzen, in denen die Methode Single()
, SingleOrDefault()
usw. aufruft, besitzen keine Argumente, und ihnen wird ein Where()
-Ausdruck vorangestellt. Die Eingabe für den Where()
-Ausdruck kann nicht als Ausdrucksbaumstruktur erstellt werden.
Grund: Durch das Entfernen des nicht erforderlichen Enumerable-Aufrufs für die .Where()
-Methode wird die Lesbarkeit und in manchen Fällen auch die Leistung verbessert. Weitere Informationen finden Sie in den Hinweisen.
Vorgehensweise
Platzieren Sie den Cursor innerhalb der
SomeEnumerableType.Where(<LambdaExpression>).Single()
-Instanz in Visual Studio.Drücken Sie STRG+., um das Menü Schnellaktionen und Refactorings aufzurufen.
Wählen Sie LINQ-Ausdruck vereinfachen aus.
Hinweise
In einigen Fällen kann dieses Refactoring die Leistung beeinträchtigen. LINQ-Vorgänge für List<T>
und T[]
werden in diesem Fall nicht optimiert und führen zu einer Leistungsminderung.