Udostępnij za pośrednictwem


Użycie wyrażenia kolekcji dla płynnego stylu (IDE0305)

Własność Wartość
identyfikator reguły IDE0305
Tytuł Użyj wyrażenia kolekcji do płynności
Kategoria Styl
podkategorii Reguły języka (preferencje na poziomie wyrażenia)
języki, do których ma zastosowanie C# 12+
Opcje dotnet_style_prefer_collection_expression

Przegląd

Ta reguła flaguje miejsca, w których kolekcja jest wbudowana w sposób płynny, czyli gdzie metody takie jak Add(), AddRange(), AsSpan(), ToList()i ToArray() są łańcuchowe. Zamiast tego można użyć wyrażenia kolekcji do zainicjowania kolekcji. Na przykład x.AddRange(y).Add(z).AsSpan() jest konwertowany na [x, ..y, z].

Opcje

Opcje określają zachowanie, które ma być wymuszane przez regułę. Aby uzyskać informacje na temat konfigurowania opcji, zobacz Format opcji.

dotnet_style_prefer_collection_expression

Własność Wartość Opis
nazwa opcji dotnet_style_prefer_collection_expression (preferowanie wyrażeń kolekcji)
wartości opcji true | when_types_exactly_match Wolisz używać wyrażeń kolekcji tylko wtedy, gdy typy są dokładnie zgodne, na przykład List<int> list = new[] { 1, 2, 3 }.ToList();.
when_types_loosely_match
(.NET 9 i nowsze wersje)*
Wolisz używać wyrażeń kolekcji nawet wtedy, gdy typy są luźno zgodne, na przykład IEnumerable<int> list = new[] { 1, 2, 3 }.ToList();. Typ docelowy musi być zgodny z typem po prawej stronie lub być jednym z następujących typów: IEnumerable<T>, ICollection<T>, IList<T>, IReadOnlyCollection<T>, IReadOnlyList<T>.
false | never Wyłącza regułę.
domyślna wartość opcji true na platformie .NET 8
when_types_loosely_match na platformie .NET 9 i nowszych wersjach

*Poprawka kodu przy użyciu tej opcji może zmienić semantykę twojego kodu.

Przykład

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

Pomijanie ostrzeżenia

Jeśli chcesz pominąć tylko jedno naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.

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

Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji .

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

Aby wyłączyć wszystkie reguły stylu kodu, ustaw poziom ważności dla kategorii Style na none w pliku konfiguracji .

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

Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia analizy kodu.

Zobacz też