Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.