次の方法で共有


コレクション初期化子または式を使用する (IDE0028)

財産 価値
ルール ID IDE0028
タイトルの コレクション初期化子を使用する
カテゴリの スタイル
Subcategory 言語ルール (式レベルの基本設定)
該当する言語の C# と Visual Basic
オプションの dotnet_style_collection_initializer
dotnet_style_prefer_collection_expression

概要

このスタイル 規則は、コレクション初期化子 使用する必要があり、C# 12 以降を使用している場合は、コレクションの初期化に コレクション式 します。

.NET 8 (C# 12) 以降のバージョンでは、dotnet_style_prefer_collection_expression オプションが trueに設定されている場合、Visual Studio の コード修正 は、コレクションの初期化コードを変換してコレクション式 (List<int> list = [1, 2, 3];) を使用します。 Visual Basic および .NET 7 (C# 11) 以前のバージョンでは、コード修正、コレクション初期化子 (List<int> list = new List<int> { 1, 2, 3 };) を使用するようにコードを変換します。

手記

Visual Studio で コード修正 を使用する場合、提供される変更のセマンティクスが異なる場合があります。 たとえば、int[] x = new int[] { } は、セマンティクスが若干異なる int[] x = [];に置き換えられます。コンパイラは、新しいインスタンスを作成する代わりに、x にシングルトンを使用します。

オプション

コレクションの初期化時にコレクション初期化子とコレクション式を優先するかどうかを指定するには、この規則に関連付けられているオプションの値を設定します。

オプションの構成の詳細については、「オプション形式を参照してください。

dotnet_style_collection_initializer

財産 価値 形容
オプション名の dotnet_style_collection_initializer
オプションの値 true コレクション初期化子を使用します。
false コレクション初期化子は使用しないでください。
既定のオプション値 true

dotnet_style_prefer_collection_expression (C# のみ)

財産 価値 形容
オプション名の dotnet_style_prefer_collection_expression
オプションの値 true コレクション式を使用します。
false コレクション式は使用しないでください。
既定のオプション値 true

// 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}

警告を抑制する

1 つの違反のみを抑制する場合は、ソース ファイルにプリプロセッサ ディレクティブを追加して無効にしてから、ルールを再度有効にします。

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

ファイル、フォルダー、またはプロジェクトのルールを無効にするには、その重大度を 構成ファイルnone に設定します。

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

すべてのコード スタイルルールを無効にするには、カテゴリ Style の重大度を、構成ファイルnone するように設定します。

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

詳細については、「コード分析の警告を抑制する方法」を参照してください。

関連項目