コレクション初期化子または式を使用する (IDE0028)
プロパティ | [値] |
---|---|
ルール ID | IDE0028 |
タイトル | コレクション初期化子を使用する |
カテゴリ | スタイル |
サブカテゴリ | 言語規則 (式レベル基本設定) |
該当言語 | 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}
警告を抑制する
単一の違反だけを抑制する場合は、ソース ファイルにプリプロセッサ ディレクティブを追加して無効にしてから、規則を再度有効にします。
#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
詳細については、「コード分析の警告を抑制する方法」を参照してください。
関連項目
.NET