Partilhar via


Simplifique a expressão LINQ (IDE0120)

Propriedade Valor
ID da regra IDE0120
Título Simplifique a expressão LINQ
Categoria Estilo
Subcategoria Regras de código desnecessárias (preferências no nível da expressão)
Idiomas aplicáveis C# e Visual Basic

Visão geral

Esta regra sinaliza expressões LINQ excessivamente complexas, especificamente expressões que chamam Enumerable.Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) seguidas por um dos seguintes métodos:

Tais expressões podem ser simplificadas removendo a chamada para Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) e, em vez disso, chamando uma sobrecarga de Any(), Count(), First(), FirstOrDefault(), Last(), LastOrDefault(), Singleou SingleOrDefault() que aceita uma função predicada para filtrar os elementos.

Opções

Esta regra não tem opções de estilo de código associadas.

Exemplo

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

Suprimir um aviso

Se você quiser suprimir apenas uma única violação, adicione diretivas de pré-processador ao arquivo de origem para desativar e, em seguida, reativar a regra.

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

Para desabilitar a regra para um arquivo, pasta ou projeto, defina sua gravidade como none no arquivo de configuração .

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

Para desabilitar todas as regras de estilo de código, defina a severidade da categoria Style como none no arquivo de configuração .

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

Para obter mais informações, consulte Como suprimir avisos de análise de código.

Ver também