Teilen über


LINQ-Ausdruck vereinfachen (IDE0120)

Eigenschaft Wert
Regel-ID IDE0120
Titel Vereinfachen von LINQ-Ausdrücken
Kategorie Stil
Unterkategorie Unnötige Code-Regeln (Einstellungen auf Ausdrucksebene)
Gültige Sprachen C# und Visual Basic

Übersicht

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

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

Dieser Regel sind keine Codeformatoptionen zugeordnet.

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

Um nur eine einzelne Verletzung zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Regel zu deaktivieren und dann wieder 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 Konfigurationsdatei auf 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 Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.

Siehe auch