Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
| Propriedade | Valor |
|---|---|
| ID da regra | IDE0305 |
| Título | Usar expressão de coleção para fluente |
| Categoria | Estilo |
| Subcategoria | Regras de idioma (preferências no nível da expressão) |
| idiomas aplicáveis | C# 12+ |
| Opções | dotnet_style_prefer_collection_expression |
Visão geral
Essa regra sinaliza locais onde uma coleção é compilada de maneira fluente, ou seja, onde métodos como Add(), AddRange(), AsSpan(), ToList() e ToArray() são encadeados. Em vez disso, uma expressão de coleção poderia ser usada para inicializar a coleção. Por exemplo, x.AddRange(y).Add(z).AsSpan() é convertido em [x, ..y, z].
Opções
As opções especificam o comportamento que você deseja que a regra imponha. Para obter informações sobre como configurar opções, consulte Formato de opção.
dotnet_style_prefer_collection_expression
| Propriedade | Valor | Descrição |
|---|---|---|
| Nome da opção | dotnet_style_prefer_collection_expression | |
| Valores das opções | true | when_types_exactly_match |
Prefira usar expressões de coleção somente quando os tipos corresponderem exatamente, por exemplo, List<int> list = new List<int>() { 1, 2 };. |
when_types_loosely_match* |
Prefira usar expressões de coleção mesmo quando os tipos não coincidirem exatamente, por exemplo, IEnumerable<int> list = new List<int>() { 1, 2 };. O tipo de destino deve corresponder ao tipo no lado direito ou ser um dos seguintes tipos: IEnumerable<T>, ICollection<T>, IList<T>, IReadOnlyCollection<T>, IReadOnlyList<T>. |
|
false | never |
Desabilita a regra. | |
| valor de opção padrão | when_types_loosely_match* |
*Quando essa opção é usada, a correção de código pode alterar a semântica do código.
Exemplo
// Code with violation.
List<int> i = new[] { 1, 2, 3 }.ToList();
IEnumerable<int> j = new[] { 1, 2, 3 }.ToList();
// Fixed code.
List<int> i = [1, 2, 3];
IEnumerable<int> j = [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 desabilitar e depois reabilitar a regra.
#pragma warning disable IDE0305
// The code that's violating the rule is on this line.
#pragma warning restore IDE0305
Para desabilitar a regra de um arquivo, pasta ou projeto, defina sua severidade como none no arquivo de configuração .
[*.{cs,vb}]
dotnet_diagnostic.IDE0305.severity = none
Para desabilitar todas as regras de estilo de código, defina a severidade da categoria Style para 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.