Partager via


Utiliser l’expression de collection pour le nouveau (IDE0306)

Propriété Valeur
Identificateur de la règle IDE0306
Titre Utiliser l'expression de collecte pour les nouvelles
Catégorie Style
Sous-catégorie Règles de langage (préférences au niveau de l’expression)
Langues applicables C# 12+
Options dotnet_style_prefer_collection_expression

Aperçu

Cette règle indique où une expression de collection avec un élément de propagation (..) peut être utilisée pour initialiser une liste au lieu de new. Par exemple, cette règle offre de simplifier le code comme new List<...>(x) dans le formulaire d’expression de collection ([.. x]).

Paramètres

Les options spécifient le comportement que vous souhaitez que la règle impose. Pour plus d’informations sur la configuration des options, consultez Format d’option.

dotnet_style_prefer_collection_expression

Propriété Valeur Descriptif
Nom d'option dotnet_style_prefer_collection_expression
Valeurs d’option true | when_types_exactly_match Préférez l’utilisation d’expressions de collection uniquement quand les types correspondent exactement, par exemple List<int> list = new List<int>() { 1, 2 };.
when_types_loosely_match* Préférez utiliser des expressions de collection même lorsque les types ne correspondent pas exactement, par exemple, IEnumerable<int> list = new List<int>() { 1, 2 };. Le type ciblé doit correspondre au type figurant sur le côté droit, ou représenter l’un des types suivants : IEnumerable<T>, ICollection<T>, IList<T>, IReadOnlyCollection<T>, IReadOnlyList<T>.
false | never Il désactive la règle.
Valeur d’option par défaut when_types_loosely_match*

*Lorsque cette option est utilisée, le correctif de code peut modifier la sémantique de votre code.

Exemple :

// Code with violation.
List<int> l1 = new List<int>(Enumerable.Range(1, 10));
List<int> m1 = new List<int>(new[] { 1, 2, 3 });

// Fixed code.
List<int> l1 = [.. Enumerable.Range(1, 10)];
List<int> m1 = [.. new[] { 1, 2, 3 }];

Supprimer un avertissement

Si vous souhaitez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver, puis réactivez la règle.

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

Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none dans le fichier de configuration.

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

Pour désactiver toutes les règles de style de code, définissez la gravité de la catégorie Style sur none dans le fichier de configuration.

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

Pour plus d’informations, consultez Comment supprimer les avertissements d’analyse du code.

Voir aussi