Share via


Förenkla LINQ-uttryck (IDE0120)

Egenskap Värde
Regel-ID IDE0120
Rubrik Förenkla LINQ-uttryck
Kategori Format
Underkategori Onödiga kodregler (inställningar på uttrycksnivå)
Tillämpliga språk C# och Visual Basic

Översikt

Den här regeln flaggar alltför komplexa LINQ-uttryck, särskilt uttryck som anropar Enumerable.Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) följt av någon av följande metoder:

Sådana uttryck kan förenklas genom att ta bort anropet till Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) och i stället anropa en överlagring av Any(), Count(), First(), FirstOrDefault(), Last(), LastOrDefault(), Singleeller SingleOrDefault() som accepterar en predikatfunktion för att filtrera elementen.

Alternativ

Den här regeln har inga associerade alternativ för kodstil.

Exempel

// 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"));

Ignorera en varning

Om du bara vill förhindra en enda överträdelse lägger du till preprocessor-direktiv i källfilen för att inaktivera och aktiverar sedan regeln igen.

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

Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none i konfigurationsfilen.

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

Om du vill inaktivera alla regler i kodstil anger du allvarlighetsgraden för kategorin Style till none i konfigurationsfilen.

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

Mer information finns i Så här utelämnar du kodanalysvarningar.

Se även