Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
| 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:
- Any<TSource>(IEnumerable<TSource>)
 - Count<TSource>(IEnumerable<TSource>)
 - First<TSource>(IEnumerable<TSource>)
 - FirstOrDefault<TSource>(IEnumerable<TSource>)
 - Last<TSource>(IEnumerable<TSource>)
 - LastOrDefault<TSource>(IEnumerable<TSource>)
 - Single<TSource>(IEnumerable<TSource>)
 - SingleOrDefault<TSource>(IEnumerable<TSource>)
 
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.