Simplificar a expressão LINQ (IDE0120)

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

Visão geral

Essa 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:

Essas 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(), Single ou SingleOrDefault() que aceita uma função de predicado para filtrar os elementos.

Opções

Essa 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 violação, adicione diretivas de pré-processador ao arquivo de origem para desabilitar e, em seguida, reabilite 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 em um arquivo, uma pasta ou um projeto, defina a severidade 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, confira Como suprimir avisos de análise de código.

Confira também