Megosztás a következőn keresztül:


CA1829: Az Enumerable.Count metódus helyett használja a Length/Count tulajdonságot

Tulajdonság Érték
Szabályazonosító CA1829
Cím Az Enumerable.Count metódus helyett használja a Length/Count tulajdonságot
Kategória Teljesítmény
A javítás kompatibilitástörő vagy nem törik Nem törés
Alapértelmezés szerint engedélyezve a .NET 8-ban Javaslatként

Ok

A Count LINQ metódust egy egyenértékű, hatékonyabb Length vagy Count tulajdonságot támogató típuson használták.

Szabály leírása

Ez a szabály megjelöli a Count LINQ metódust, amely az egyenértékű, de hatékonyabb Length vagy Count tulajdonságú típusok gyűjteményeit hívja meg ugyanazon adatok lekéréséhez. Length vagy Count a tulajdonság nem sorolja fel a gyűjteményt, ezért hatékonyabb.

Ez a szabály a Count következő, tulajdonsággal rendelkező gyűjteménytípusokat Length hívja meg:

Ez a szabály a következő gyűjteménytípusokat Count hívja meg a Count tulajdonsággal:

Az elemzett gyűjteménytípusok a jövőben további esetekre is kiterjeszthetők.

Szabálysértések kijavítása

A szabálysértés kijavításához cserélje le a Count metódushívást a vagy Count a Length tulajdonsághozzáférés használatára. A következő két kódrészlet például a szabály megsértését és a hiba elhárítását mutatja be:

using System.Collections.Generic;
using System.Linq;

class C
{
    public int GetCount(int[] array)
        => array.Count();

    public int GetCount(ICollection<int> collection)
        => collection.Count();
}
using System.Collections.Generic;

class C
{
    public int GetCount(int[] array)
        => array.Length;

    public int GetCount(ICollection<int> collection)
        => collection.Count;
}

Tipp.

Ehhez a szabályhoz kódjavítás érhető el a Visual Studióban. A használathoz helyezze a kurzort a szabálysértésre, és nyomja le a Ctrl+ billentyűt. (pont). Válassza a Hossz/Darabszám tulajdonságot a Count() helyett, ha elérhető a bemutatott lehetőségek listájából.

Code fix for CA1829 - Use Length/Count property instead of Count() when available

Mikor kell letiltani a figyelmeztetéseket?

A szabály megsértését nyugodtan letilthatja, ha nem aggódik a szükségtelen gyűjtemények számbavételének teljesítményre gyakorolt hatása miatt a darabszám kiszámításához.

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 CA1829
// The code that's violating the rule is on this line.
#pragma warning restore CA1829

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.CA1829.severity = none

További információ: Kódelemzési figyelmeztetések letiltása.

Kapcsolódó információk