プロパティ | 価値 |
---|---|
ルール識別子 | IDE0306 |
タイトル | 新規にコレクション式を使用する |
カテゴリ | 様式 |
サブカテゴリ | 言語ルール (表現レベルの優先順位) |
該当する言語 | C# 12 以降 |
[オプション] | dotnet_style_prefer_collection_expression |
概要
この規則フラグは、拡散要素 () を持つ..
を使用して、new
の代わりにリストを初期化できる場所にフラグを設定します。 たとえば、この規則では、コレクション式フォーム (new List<...>(x)
) に[.. x]
などのコードを簡略化できます。
オプション
オプションでは、ルールを適用する動作を指定します。 オプションの構成については、「オプション形式 を参照してください。
dotnet_style_prefer_collection_expression
プロパティ | 価値 | 説明 |
---|---|---|
オプション名 | dotnet_style_prefer_collection_expression | |
オプション値 | true | when_types_exactly_match |
コレクション式は、型が完全に一致する場合にのみ使用します (例: List<int> list = new List<int>() { 1, 2 }; )。 |
when_types_loosely_match * |
IEnumerable<int> list = new List<int>() { 1, 2 }; など、型が緩やかに一致する場合でもコレクション式を使用することを好みます。 対象となる型は、右側の型と一致するか、IEnumerable<T>、ICollection<T>、IList<T>、IReadOnlyCollection<T>、IReadOnlyList<T>のいずれかの型である必要があります。 |
|
false | never |
ルールを無効にします。 | |
既定のオプション値 | when_types_loosely_match * |
*このオプションを使用すると、コード修正によってコードのセマンティクスが変更される可能性があります。
例
// Code with violation.
List<int> l1 = new List<int>(Enumerable.Range(1, 10));
List<int> m1 = new List<int>(new[] { 1, 2, 3 });
// Fixed code.
List<int> l1 = [.. Enumerable.Range(1, 10)];
List<int> m1 = [.. new[] { 1, 2, 3 }];
警告を抑制する
1 つの違反のみを抑制する場合は、ソース ファイルにプリプロセッサ ディレクティブを追加して無効にしてから、ルールを再度有効にします。
#pragma warning disable IDE0306
// The code that's violating the rule is on this line.
#pragma warning restore IDE0306
ファイル、フォルダー、またはプロジェクトのルールを無効にするには、none
でその重要度を に設定します。
[*.{cs,vb}]
dotnet_diagnostic.IDE0306.severity = none
すべてのコード スタイルルールを無効にするには、カテゴリ Style
の重大度を、none
に するように設定します。
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
詳細については、「コード分析の警告を抑制する方法」を参照してください。
こちらも参照ください
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET