Sdílet prostřednictvím


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 8 Jako návrh

Příčina

Enumerable.Any je volána typ, který má Length, Countnebo IsEmptyvlastnost.

Popis pravidla

Chcete-li zjistit, zda typ kolekce obsahuje nějaké prvky, je efektivnější a jasnější použít Lengthvlastnosti , Countnebo 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 LinqCount(), zatímco toto pravidlo navrhuje použití Countvlastnosti.

Jak opravit porušení

Nahraďte volání any() voláním kolekce Length, Countnebo 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.