Partilhar via


Usar inicializadores de coleção ou expressões (IDE0028)

Propriedade Valor
ID da regra IDE0028
Título Usar inicializadores de coleção
Categoria Estilo
Subcategoria Regras de idioma (preferências no nível da expressão)
Idiomas aplicáveis C# e Visual Basic
Opções dotnet_style_collection_initializer
dotnet_style_prefer_collection_expression

Visão geral

Esta regra de estilo diz respeito ao uso de inicializadores de coleção e, se você estiver usando C# 12 ou posterior, expressões de coleção para inicialização de coleção.

No .NET 8 (C# 12) e versões posteriores, se você tiver a opção dotnet_style_prefer_collection_expression definida como true, a correção de código no Visual Studio converte o código de inicialização da coleção para usar uma expressão de coleção (List<int> list = [1, 2, 3];). No Visual Basic e no .NET 7 (C# 11) e versões anteriores, a correção de código converte seu código para usar um inicializador de coleção (List<int> list = new List<int> { 1, 2, 3 };).

Observação

Se você usar o de correção de código no Visual Studio, a alteração que ele oferece pode ter semânticas diferentes em alguns casos. Por exemplo, int[] x = new int[] { } é substituído por int[] x = [];, que tem semântica ligeiramente diferente — o compilador usa um singleton para x em vez de criar uma nova instância.

Opções

Defina os valores das opções associadas para esta regra para especificar se inicializadores de coleção e expressões de coleção são preferidos ao inicializar coleções.

Para obter mais informações sobre como configurar opções, consulte Formato de opção.

dotnet_style_collection_initializer

Propriedade Valor Descrição
Nome da opção dotnet_style_collection_initializer
Valores de opção true Prefira usar inicializadores de coleção.
false Não prefira inicializadores de coleção.
Valor da opção padrão true

dotnet_style_prefer_collection_expression (somente C#)

Propriedade Valor Descrição
Nome da opção dotnet_style_prefer_collection_expression
Valores de opção true Prefira usar expressões de coleção.
false Não prefira expressões de coleção.
Valor da opção padrão true

Exemplos

// IDE0028 violation.
List<int> list = new List<int>();
list.Add(1);
list.Add(2);
list.Add(3);

// Fixed code (with dotnet_style_prefer_collection_expression = true)
List<int> list = [1, 2, 3];
' IDE0028 violation.
Dim list = New List(Of Integer)
list.Add(1)
list.Add(2)
list.Add(3)

' Fixed code.
Dim list = New List(Of Integer) From {1, 2, 3}

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

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

[*.{cs,vb}]
dotnet_diagnostic.IDE0028.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