コレクション初期化子または式を使用する (IDE0028)
プロパティ | 値 |
---|---|
ルール ID | IDE0028 |
Title | コレクション初期化子を使用する |
カテゴリ | スタイル |
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 };
) を使用するようにコードを変換します。
Note
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}
// IDE0028 violation.
List<int> list = new List<int>();
list.Add(1);
list.Add(2);
list.Add(3);
// Fixed code.
List<int> list = new List<int>
{
1,
2,
3
};
// IDE0028 violation.
List<int> list = new List<int>();
list.Add(1);
list.AddRange(new[] { 5, 6, 7 });
// Fixed code.
List<int> list = [1, .. new[] { 5, 6, 7 }];
' 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