次の方法で共有


LINQ 式を簡略化する (IDE0120)

財産 価値
ルール ID IDE0120
タイトル LINQ 式を簡略化する
カテゴリ スタイル
サブカテゴリー 不要なコード規則(式レベルの好み)
対象言語 C# と Visual Basic

概要

この規則は、過度に複雑な LINQ 式、特に Enumerable.Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) 呼び出す式にフラグを設定し、その後に次のいずれかのメソッドを指定します。

このような式は、Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) の呼び出しを削除し、代わりに Any()Count()First()FirstOrDefault()Last()LastOrDefault()Single、または要素をフィルター処理する述語関数を受け入れる SingleOrDefault() のオーバーロードを呼び出すことによって簡略化できます。

オプション

この規則には、関連付けられたコード スタイルのオプションはありません。

// Code with violations.
IEnumerable<string> words = new List<string> { "hello", "world", "!" };
var result = words.Where(x => x.Equals("hello")).Any();

// Fixed code.
IEnumerable<string> words = new List<string> { "hello", "world", "!" };
var result = words.Any(x => x.Equals("hello"));

警告を抑制する

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

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

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

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

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

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

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

関連項目