Condividi tramite


Semplificare l'espressione LINQ (IDE0120)

Proprietà Valore
ID regola IDE0120
Titolo Semplificare l'espressione LINQ
Categoria Stile
Subcategory Regole di codice non necessarie (preferenze a livello di espressione)
Lingue applicabili C# e Visual Basic

Panoramica

Questa regola contrassegna espressioni LINQ 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 rimuovendo la chiamata a Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) e chiamando invece un overload di Any(), Last()Count()FirstOrDefault()LastOrDefault()First()Singleo SingleOrDefault() che accetta una funzione predicato per filtrare gli elementi.

Opzioni

Questa regola non include opzioni di stile 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 vuole eliminare solo una singola violazione, aggiungere direttive di 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, impostare la relativa gravità su none nel file di configurazione.

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

Per disabilitare tutte le regole in stile 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.

Vedi anche