簡化 LINQ 運算式 (IDE0120)

屬性
規則識別碼 IDE0120
標題 簡化 LINQ 運算式
類別 樣式
子類別 運算式層級喜好設定 (不必要的程式碼規則)
適用語言 C# 和 Visual Basic

概觀

此規則旗標過度複雜的 LINQ 運算式,特別是呼叫 Enumerable.Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) 的運算式,後面接著下列其中一種方法:

藉由移除 對 的呼叫 Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) ,並改為呼叫 、、 First()FirstOrDefault() 、、 LastOrDefault()Last()SingleSingleOrDefault() 的多載 Count()Any() ,以接受述詞函式來篩選項目,即可簡化這類運算式。

選項

此規則沒有相關聯的程式碼樣式選項。

範例

// 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"));

隱藏警告

若您只想隱藏單一違規,請將前置處理指示詞新增至來源檔案以停用規則,然後重新啟用規則。

#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

如需詳細資訊,請參閱如何隱藏程式碼分析警告

另請參閱