CA1860: Nepoužívejte metodu rozšíření Enumerable.Any()
Vlastnost | Hodnota |
---|---|
ID pravidla | CA1860 |
Název | Nepoužívejte metodu rozšíření Enumerable.Any() |
Kategorie | Výkon |
Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
Povoleno ve výchozím nastavení v .NET 9 | Jako návrh |
Příčina
Enumerable.Any je volána typ, který má Length
, Count
nebo IsEmpty
vlastnost.
Popis pravidla
Chcete-li zjistit, zda typ kolekce obsahuje nějaké prvky, je efektivnější a jasnější použít Length
vlastnosti , Count
nebo IsEmpty
(pokud je to možné) než volat metodu Enumerable.Any .
Any()
, což je rozšiřující metoda, používá jazyk integrovaný dotaz (LINQ). Je efektivnější spoléhat se na vlastní vlastnosti kolekce a také upřesňuje záměr.
Poznámka:
Toto pravidlo se podobá CA1827: Nepoužívejte count()/LongCount(), když je možné použít any(). Toto pravidlo se však vztahuje na metodu Linq Count()
, zatímco toto pravidlo navrhuje použití Count
vlastnosti.
Jak opravit porušení
Nahraďte volání any() voláním kolekce Length
, Count
nebo IsEmpty
vlastnosti.
Příklad
Následující fragment kódu ukazuje porušení ca1860:
bool HasElements(string[] strings)
{
return strings.Any();
}
Function HasElements(strings As String()) As Boolean
Return strings.Any()
End Function
Následující fragment kódu opraví porušení zásad:
bool HasElements(string[] strings)
{
return strings.Length > 0;
}
Function HasElements(strings As String()) As Boolean
Return strings.Length > 0
End Function
Kdy potlačit upozornění
Pokud výkon není problém, je bezpečné toto upozornění potlačit.
Potlačení upozornění
Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.
#pragma warning disable CA1860
// The code that's violating the rule is on this line.
#pragma warning restore CA1860
Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v none
konfiguračním souboru.
[*.{cs,vb}]
dotnet_diagnostic.CA1860.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.