Freigeben über


Vereinfachen des LINQ-Ausdrucks (IDE0120)

Eigentum Wert
Regel-ID IDE0120
Titel Vereinfachen des LINQ-Ausdrucks
Kategorie Stil
Unterkategorie Unnötige Coderegeln (Einstellungen auf Ausdrucksebene)
Anwendbare Sprachen C# und Visual Basic

Überblick

Diese Regel kennzeichnet übermäßig komplexe LINQ-Ausdrücke, insbesondere Ausdrücke, die Enumerable.Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) aufrufen, gefolgt von einer der folgenden Methoden:

Solche Ausdrücke können vereinfacht werden, indem Sie den Aufruf von Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) entfernen und stattdessen eine Überladung von Any(), Count(), First(), FirstOrDefault(), Last(), LastOrDefault(), Single oder SingleOrDefault() aufrufen, die eine Prädikatfunktion zum Filtern der Elemente akzeptiert.

Optionen

Diese Regel enthält keine zugehörigen Codeformatoptionen.

Beispiel

// Code with violations.
IEnumerable<string> words = new List<string> { "hello", "world", "!" };
var result = words.Where(x => x.Equals("hello")).Any();

// Fixed code.
IEnumerable<string> words = new List<string> { "hello", "world", "!" };
var result = words.Any(x => x.Equals("hello"));

Unterdrücken einer Warnung

Wenn Sie nur einen einzelnen Verstoß unterdrücken möchten, fügen Sie Ihrer Quelldatei Präprozessordirektiven hinzu, um die Regel zu deaktivieren und dann erneut zu aktivieren.

#pragma warning disable IDE0120
// The code that's violating the rule is on this line.
#pragma warning restore IDE0120

Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad in der Konfigurationsdateiauf none fest.

[*.{cs,vb}]
dotnet_diagnostic.IDE0120.severity = none

Um alle Regeln im Code-Stil zu deaktivieren, setzen Sie den Schweregrad für die Kategorie in der KonfigurationsdateiStyle auf none.

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

Weitere Informationen finden Sie unter So unterdrücken Sie Codeanalysewarnungen.

Siehe auch