Adicionar uma conversão explícita no loop foreach (IDE0220)

Propriedade Valor
ID da regra IDE0220
Título Adicionar conversão explícita
Categoria Estilo
Subcategoria Regras de linguagem (preferências no nível de expressão)
Linguagens aplicáveis C#
Opções dotnet_style_prefer_foreach_explicit_cast_in_source

Visão geral

Essa regra sinaliza a ausência de uma conversão explícita em um loop foreach quando o compilador adicionaria uma conversão oculta. Para coleções genéricas ou fortemente tipadas, forçar uma conversão explícita quando o compilador adicionaria uma conversão oculta pode revelar o uso de um tipo incorreto na instrução foreach.

Opções

As opções especificam o comportamento que você quer que a regra imponha. Para obter informações sobre como configurar as opções, consulte Formato da opção.

dotnet_style_prefer_foreach_explicit_cast_in_source

Propriedade Valor Descrição
Nome da Opção dotnet_style_prefer_foreach_explicit_cast_in_source
Valores da opção always Prefira conversões explícitas no código-fonte.
when_strongly_typed Prefira conversões explícitas para coleções fortemente tipadas (genéricas), mas não para coleções herdadas, como ArrayList.
Valor da opção padrão when_strongly_typed

Exemplo

// Code with violations.
var list = new List<object>();
foreach (string item in list) { }

// Fixed code.
var list = new List<object>();
foreach (string item in list.Cast<string>())

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 IDE0220
// The code that's violating the rule is on this line.
#pragma warning restore IDE0220

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.IDE0220.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