Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
| Tulajdonság | Érték |
|---|---|
| Szabályazonosító | CA1860 |
| Cím | Kerülje az "Enumerable.Any()" bővítménymetódus használatát |
| Kategória | Teljesítmény |
| A javítás romboló vagy nem romboló | Nem törhető |
| Alapértelmezés szerint engedélyezve a .NET 10-ben | Javaslatként |
| Alkalmazandó nyelvek | C# és Visual Basic |
Ok
Enumerable.Any egy olyan típuson van meghívva, amely rendelkezik Length, Count, vagy IsEmptytulajdonsággal.
Szabály leírása
Annak megállapításához, hogy egy gyűjteménytípus rendelkezik-e elemekkel, hatékonyabb és egyértelműbb a Length, Count vagy IsEmpty tulajdonságok használata, ha lehetséges, mint a Enumerable.Any metódus meghívása.
Any(), amely egy bővítménymetódus, nyelvvel integrált lekérdezést (LINQ) használ. Hatékonyabb a gyűjtemény saját tulajdonságaira támaszkodni, és egyértelművé teszi a szándékot is.
Megjegyzés
Ez a szabály a CA1827-hez hasonló: Ne használja a Count()/LongCount() függvényt, ha bármelyik() használható. Ez a szabály azonban a Linq Count()metódusra vonatkozik, míg ez a szabály a Counttulajdonság használatát javasolja.
Szabálysértések kijavítása
Cserélje le az Any() hívását a gyűjtemény Length, Count, vagy IsEmpty tulajdonságának hívására.
Példa
A következő kódrészlet a CA1860 megsértését mutatja be:
bool HasElements(string[] strings)
{
return strings.Any();
}
Function HasElements(strings As String()) As Boolean
Return strings.Any()
End Function
A következő kódrészlet kijavítja a szabálysértést:
bool HasElements(string[] strings)
{
return strings.Length > 0;
}
Function HasElements(strings As String()) As Boolean
Return strings.Length > 0
End Function
Mikor kell letiltani a figyelmeztetéseket?
Ha a teljesítmény nem okoz problémát, nyugodtan el lehet tiltani ezt a figyelmeztetést.
Figyelmeztetés mellőzése
Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.
#pragma warning disable CA1860
// The code that's violating the rule is on this line.
#pragma warning restore CA1860
Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none a konfigurációs fájlban.
[*.{cs,vb}]
dotnet_diagnostic.CA1860.severity = none
További információ: Kódelemzési figyelmeztetések letiltása.