Share via


CA1829: de eigenschap Length/Count gebruiken in plaats van de methode Enumerable.Count

Eigenschappen Weergegeven als
Regel-id CA1829
Titel De eigenschap Length/Count gebruiken in plaats van de methode Enumerable.Count
Categorie Prestaties
Oplossing is brekend of niet-brekend Niet-brekend
Standaard ingeschakeld in .NET 9 Als suggestie

Oorzaak

De Count LINQ-methode is gebruikt voor een type dat ondersteuning biedt voor een equivalente, efficiëntere Length eigenschap of Count eigenschap.

Beschrijving van regel

Deze regel markeert de Count LINQ-methode die aanroept op verzamelingen van typen die gelijkwaardig zijn, maar efficiënter Length of Count eigenschap om dezelfde gegevens op te halen. Length of Count de eigenschap inventariseert de verzameling niet, dus is efficiënter.

Deze regel markeert aanroepen van de volgende verzamelingstypen Count met Length eigenschap:

Deze regel markeert aanroepen van de volgende verzamelingstypen Count met de Count eigenschap:

De geanalyseerde verzamelingstypen kunnen in de toekomst worden uitgebreid om meer zaken te behandelen.

Schendingen oplossen

Als u een schending wilt oplossen, vervangt u de Count methode-aanroep door het gebruik van de toegang tot of Length Count de eigenschap. In de volgende twee codefragmenten ziet u bijvoorbeeld een schending van de regel en hoe u deze kunt oplossen:

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;
}

Tip

Er is een codeoplossing beschikbaar voor deze regel in Visual Studio. Als u deze wilt gebruiken, plaatst u de cursor op de schending en drukt u op Ctrl+. (punt). Kies De eigenschap Lengte/aantal gebruiken in plaats van Count() als deze beschikbaar is in de lijst met opties die worden weergegeven.

Codefix voor CA1829 - Eigenschap Lengte/aantal gebruiken in plaats van Count() indien beschikbaar

Wanneer waarschuwingen onderdrukken

Het is veilig om een schending van deze regel te onderdrukken als u zich geen zorgen maakt over de gevolgen voor de prestaties van onnodige inventarisatie van verzamelingen om het aantal te berekenen.

Een waarschuwing onderdrukken

Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.

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

Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst none ervan in op het configuratiebestand.

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

Zie Codeanalysewaarschuwingen onderdrukken voor meer informatie.

Zie ook