Condividi tramite


Utilizzare l'espressione di raccolta per programmazione fluente (IDE0305)

Proprietà Valore
Regola ID IDE0305
Titolo Usare espressioni di raccolta per una maggiore fluidità
Categoria Stile
sottocategoria Regole del linguaggio (preferenze a livello di espressione)
lingue applicabili C# 12+
Opzioni dotnet_style_prefer_collection_expression

Panoramica

Questa regola contrassegna le posizioni in cui una raccolta viene compilata in modo fluente , ovvero in cui vengono concatenati metodi come Add(), AddRange(), AsSpan(), ToList()e ToArray(). È invece possibile utilizzare un'espressione di raccolta per inizializzare la raccolta. Ad esempio, x.AddRange(y).Add(z).AsSpan() viene convertito in [x, ..y, z].

Opzioni

Le opzioni specificano il comportamento che desideri che la regola imponga. Per informazioni sulla configurazione delle opzioni, vedere Formato opzione.

dotnet_style_prefer_collection_expression

Proprietà Valore Descrizione
nome opzione dotnet_style_prefer_collection_expression
valori di opzione true | when_types_exactly_match Preferisce usare espressioni di raccolta solo quando i tipi corrispondono esattamente, ad esempio List<int> list = new[] { 1, 2, 3 }.ToList();.
when_types_loosely_match
(.NET 9 e versioni successive)*
Preferire usare espressioni di raccolta anche quando i tipi coincidono vagamente, ad esempio IEnumerable<int> list = new[] { 1, 2, 3 }.ToList();. Il tipo di destinazione deve corrispondere al tipo sul lato destro o essere uno dei tipi seguenti: IEnumerable<T>, ICollection<T>, IList<T>, IReadOnlyCollection<T>, IReadOnlyList<T>.
false | never Disabilita la regola.
valore di opzione predefinito true in .NET 8
when_types_loosely_match in .NET 9 e versioni successive

*La correzione del codice quando viene usata questa opzione potrebbe modificare la semantica del codice.

Esempio

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

Eliminare un avviso

Se si desidera eliminare solo una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.

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

Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità su none nel file di configurazione .

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

Per disabilitare tutte le regole di tipo codice, impostare la gravità per la categoria Style su none nel file di configurazione .

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

Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.

Vedere anche