Sdílet prostřednictvím


Zjednodušení výrazu LINQ (IDE0120)

Vlastnost Hodnota
ID pravidla IDE0120
název Zjednodušení výrazu LINQ
kategorie Styl
podkategorie Nepotřebná pravidla kódu (předvolby na úrovni výrazu)
příslušné jazyky C# a Visual Basic

Přehled

Toto pravidlo označuje příliš složité výrazy LINQ, konkrétně výrazy, které volají Enumerable.Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) následované jednou z následujících metod:

Tyto výrazy lze zjednodušit odebráním volání Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) a místo toho zavoláním přetížené funkce Any(), Count(), First(), FirstOrDefault(), Last(), LastOrDefault(), Singlenebo SingleOrDefault(), která přijímá predikátovou funkci k filtrování prvků.

Možnosti

Toto pravidlo nemá přidružené možnosti stylu kódu.

Příklad

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

Potlačení upozornění

Pokud chcete potlačit pouze jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.

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

Chcete-li pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost na none v konfiguračním souboru .

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

Chcete-li zakázat všechna pravidla stylu kódu, nastavte závažnost pro kategorii Style na none v konfiguračním souboru .

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

Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.

Viz také