Partager via


Utiliser l’expression de collection pour le tableau (IDE0300)

Propriété Valeur
Identificateur de la règle IDE0300
Titre Utiliser une expression de collecte pour le tableau
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 signale les emplacements où une expression de collection peut être utilisée pour initialiser un tableau. Par exemple, cette règle propose de simplifier le code comme new C[] { ... }, new[] { ... }et C[] c = { ... } dans le formulaire d’expression de collection ([...]).

Options

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

dotnet_style_prefer_collection_expression

Propriété Valeur Description
nom de l’option dotnet_style_prefer_collection_expression
Valeurs d'option true | when_types_exactly_match Préférez utiliser des expressions de collection uniquement lorsque les types correspondent exactement, par exemple, int[] i = new int[] { 1, 2, 3 };.
when_types_loosely_match
(.NET 9 et versions ultérieures)*
Préférez utiliser des expressions de collection même lorsque les types correspondent approximativement, par exemple, IEnumerable<int> i = new int[] { 1, 2, 3 };. Le type ciblé doit correspondre au type sur le côté droit ou être 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 true dans .NET 8
when_types_loosely_match dans .NET 9 et versions ultérieures

*Le correctif de code lorsque cette option est utilisée peut modifier la sémantique de votre code. Par exemple, si vous aviez IEnumerable<int> x = new int[] { 1, 2, 3 };, dans le code d’origine, un tableau est généré. Mais dans le nouveau code (IEnumerable<int> x = [1, 2, 3];), un type synthétisé interne est produit à la place. Vous pouvez observer cette différence si vous utilisez un contrôle is ou un transtypage.

Exemple

// Code with violations.
int[] i = new int[] { 1, 2, 3 };
IEnumerable<int> j = new int[] { 1, 2, 3 };

// Fixed code.
int[] i = [1, 2, 3];
IEnumerable<int> j = [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 IDE0300
// The code that's violating the rule is on this line.
#pragma warning restore IDE0300

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

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