Partager via


Utiliser une expression de collection pour Fluent (IDE0305)

Propriété Valeur
Identificateur de la règle IDE0305
Titre Utiliser une expression de collection pour Fluent
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 les lieux où une collection est générée de manière fluent, c’est-à-dire, là où les méthodes telles que Add(), AddRange(), AsSpan(), ToList() et ToArray() sont chaînées. Au lieu de cela, une expression de collection peut être utilisée pour initialiser la collection. Par exemple, x.AddRange(y).Add(z).AsSpan() est convertie en [x, ..y, z].

Options

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

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, List<int> list = new[] { 1, 2, 3 }.ToList();.
when_types_loosely_match
(.NET 9 et versions ultérieures)*
Préférez utiliser des expressions de collection même lorsque les types ne correspondent pas exactement, par exemple, IEnumerable<int> list = new[] { 1, 2, 3 }.ToList();. 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.

Exemple

// 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];

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

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