Share via


Verzamelingsexpressie gebruiken voor fluent (IDE0305)

Eigenschappen Weergegeven als
Regel-id IDE0305
Titel Verzamelingsexpressie gebruiken voor fluent
Categorie Stijl
Subcategorie Taalregels (voorkeuren op expressieniveau)
Toepasselijke talen C# 12+
Opties dotnet_style_prefer_collection_expression

Overzicht

Deze regel markeert plaatsen waar een verzameling op een vloeiende manier is gebouwd, dat wil gezegd, waarbij methoden zoals Add(), AddRange(), AsSpan(), en ToList()worden ToArray() gekoppeld. In plaats daarvan kan een verzamelingsexpressie worden gebruikt om de verzameling te initialiseren. Wordt bijvoorbeeld x.AddRange(y).Add(z).AsSpan() geconverteerd naar [x, ..y, z].

Opties

Met opties geeft u het gedrag op dat door de regel moet worden afgedwongen. Zie Optieindeling voor meer informatie over het configureren van opties.

dotnet_style_prefer_collection_expression

Eigenschappen Weergegeven als Beschrijving
Optienaam dotnet_style_prefer_collection_expression
Optiewaarden true | when_types_exactly_match Gebruik liever alleen verzamelingsexpressies wanneer typen exact overeenkomen, List<int> list = new[] { 1, 2, 3 }.ToList();bijvoorbeeld.
when_types_loosely_match
(.NET 9 en latere versies)*
Gebruik liever verzamelingsexpressies, zelfs wanneer typen losjes overeenkomen, IEnumerable<int> list = new[] { 1, 2, 3 }.ToList();bijvoorbeeld. Het doeltype moet overeenkomen met het type aan de rechterkant of een van de volgende typen zijn: IEnumerable<T>, ICollection<T>, IList<T>, , IReadOnlyCollection<T>, . IReadOnlyList<T>
false | never Hiermee schakelt u de regel uit.
Standaardoptiewaarde true in .NET 8
when_types_loosely_match in .NET 9 en latere versies

*De codeoplossing wanneer deze optie wordt gebruikt, kan de semantiek van uw code wijzigen.

Opmerking

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

Een waarschuwing onderdrukken

Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.

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

Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst none ervan in op het configuratiebestand.

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

Als u alle regels voor codestijl wilt uitschakelen, stelt u de ernst voor de categorie Stylenone in op in het configuratiebestand.

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

Zie Codeanalysewaarschuwingen onderdrukken voor meer informatie.

Zie ook