Freigeben über


Verwenden von Auflistungsinitialisierern oder Ausdrücken (IDE0028)

Eigentum Wert
Regel-ID IDE0028
Titel Verwenden von Sammlungsinitialisierern
Kategorie- Stil
Unterkategorie Sprachregeln (Einstellungen auf Ausdrucksebene)
Anwendbare Sprachen C# und Visual Basic
Optionen dotnet_style_collection_initializer
dotnet_style_prefer_collection_expression

Überblick

Diese Formatvorlagenregel betrifft die Verwendung von Auflistungsinitialisierern und bei Verwendung von C# 12 oder höher Auflistungsausdrücke für die Sammlungsinitialisierung.

Wenn Sie in .NET 8 (C# 12) und höheren Versionen die option dotnet_style_prefer_collection_expression auf truefestgelegt haben, konvertiert der Codekorrektur in Visual Studio Ihren Sammlungsinitialisierungscode in einen Sammlungsausdruck (List<int> list = [1, 2, 3];). In Visual Basic und in .NET 7 (C# 11) und früheren Versionen konvertiert der Codekorrektur Ihren Code in die Verwendung eines Sammlungsinitialisierers (List<int> list = new List<int> { 1, 2, 3 };).

Anmerkung

Wenn Sie die Codekorrektur in Visual Studio verwenden, kann die Änderung, die es bietet, in einigen Fällen unterschiedliche Semantik aufweisen. Beispielsweise wird int[] x = new int[] { } durch int[] x = [];ersetzt, die geringfügig andere Semantik aufweist– der Compiler verwendet ein Singleton für x anstelle einer neuen Instanz.

Optionen

Legen Sie die Werte der zugehörigen Optionen für diese Regel fest, um anzugeben, ob Auflistungsinitialisierer und Auflistungsausdrücke beim Initialisieren von Auflistungen bevorzugt werden.

Weitere Informationen zum Konfigurieren von Optionen finden Sie unter Optionsformat.

dotnet_style_collection_initializer

Eigentum Wert Beschreibung
Optionsname dotnet_style_collection_initializer
Optionswerte true Bevorzugen Sie die Verwendung von Sammlungsinitialisierern.
false Bevorzugen Sie keine Sammlungsinitialisierer.
Standardwert true

dotnet_style_prefer_collection_expression (nur C#)

Eigentum Wert Beschreibung
Optionsname dotnet_style_prefer_collection_expression
Optionswerte true Verwenden Sie Auflistungsausdrücke lieber.
false Bevorzugen Sie keine Auflistungsausdrücke.
Standardwert true

Beispiele

// IDE0028 violation.
List<int> list = new List<int>();
list.Add(1);
list.Add(2);
list.Add(3);

// Fixed code (with dotnet_style_prefer_collection_expression = true)
List<int> list = [1, 2, 3];
' IDE0028 violation.
Dim list = New List(Of Integer)
list.Add(1)
list.Add(2)
list.Add(3)

' Fixed code.
Dim list = New List(Of Integer) From {1, 2, 3}

Unterdrücken einer Warnung

Wenn Sie nur einen einzelnen Verstoß unterdrücken möchten, fügen Sie Ihrer Quelldatei Präprozessordirektiven hinzu, um die Regel zu deaktivieren und dann erneut zu aktivieren.

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

Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad in der Konfigurationsdateiauf none fest.

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

Um alle Codestilregeln zu deaktivieren, legen Sie den Schweregrad für die Kategorie fest, Style in der Konfigurationsdateiauf none.

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

Weitere Informationen finden Sie unter So unterdrücken Sie Codeanalysewarnungen.

Siehe auch