Delen via


LINQ-expressie vereenvoudigen (IDE0120)

Eigenschap Waarde
Regel-ID IDE0120
titel LINQ-expressie vereenvoudigen
categorie Stijl
Subcategorie Overbodige coderegels (voorkeuren op expressieniveau)
Toepasselijke talen C# en Visual Basic

Overzicht

Deze regel markeert te veel complexe LINQ-expressies, met name expressies die Enumerable.Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) aanroepen, gevolgd door een van de volgende methoden:

Dergelijke uitdrukkingen kunnen worden vereenvoudigd door de aanroep naar Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) te verwijderen en in plaats van een overload van Any(), Count(), First(), FirstOrDefault(), Last(), LastOrDefault(), Singleof SingleOrDefault() aan te roepen die een predicaatfunctie accepteert om de elementen te filteren.

Opties

Deze regel heeft geen gekoppelde opties voor codestijl.

Voorbeeld

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

Een waarschuwing onderdrukken

Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.

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

Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst ervan in op none in het configuratiebestand.

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

Als u alle regels voor de codestijl wilt uitschakelen, stelt u de ernst voor de categorie Style in op none in het configuratiebestand.

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

Zie Codeanalysewaarschuwingen onderdrukkenvoor meer informatie.

Zie ook