Condividi tramite


Semplificare l'espressione LINQ (IDE0120)

Proprietà Valore
ID regola IDE0120
titolo Semplificare l'espressione LINQ
categoria Stile
sottocategoria Regole di codice non necessarie (preferenze a livello di espressione)
lingue applicabili C# e Visual Basic

Panoramica

Questa regola contrassegna espressioni LINQ eccessivamente complesse, in particolare espressioni che chiamano Enumerable.Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) seguito da uno dei metodi seguenti:

Tali espressioni possono essere semplificate eliminando la chiamata a Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) e utilizzando invece un overload di Any(), Count(), First(), FirstOrDefault(), Last(), LastOrDefault(), Singleo SingleOrDefault(), che accetta una funzione predicato per filtrare gli elementi.

Opzioni

Questa regola non ha opzioni di stile di codice associate.

Esempio

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

Eliminare un avviso

Se si desidera eliminare solo una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.

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

Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità su none nel file di configurazione .

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

Per disabilitare tutte le regole di tipo codice, impostare la gravità per la categoria Style su none nel file di configurazione .

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

Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.

Vedere anche