Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
| Proprietà | valore |
|---|---|
| ID regola | CA1860 |
| Title | Evitare di usare il metodo di estensione 'Enumerable.Any()' |
| Categoria | Prestazioni |
| La correzione causa un'interruzione o meno | Non causa un'interruzione |
| Abilitato per impostazione predefinita in .NET 10 | Come suggerimento |
Causa
Enumerable.Anyviene chiamato su un tipo con una Lengthproprietà , Counto IsEmpty.
Descrizione regola
Per determinare se un tipo di raccolta include elementi, è più efficiente e più chiaro usare le Lengthproprietà , Counto IsEmpty (se possibile) rispetto a chiamare il Enumerable.Any metodo .
Any(), che è un metodo di estensione, usa linQ (Language Integrated Query). È più efficiente basarsi sulle proprietà della raccolta e chiarisce anche l'intento.
Nota
Questa regola è simile a CA1827: non usare Count()/LongCount() quando è possibile usare Any(). Tuttavia, tale regola si applica al metodo Linq Count(), mentre questa regola suggerisce l'uso della Count .
Come correggere le violazioni
Sostituire una chiamata a Any() con una chiamata alla proprietà , Lengtho Count dell'insiemeIsEmpty.
Esempio
Il frammento di codice seguente mostra una violazione di CA1860:
bool HasElements(string[] strings)
{
return strings.Any();
}
Function HasElements(strings As String()) As Boolean
Return strings.Any()
End Function
Il frammento di codice seguente corregge la violazione:
bool HasElements(string[] strings)
{
return strings.Length > 0;
}
Function HasElements(strings As String()) As Boolean
Return strings.Length > 0
End Function
Quando eliminare gli avvisi
Se le prestazioni non sono un problema, è possibile eliminare questo avviso.
Eliminare un avviso
Se si vuole eliminare una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.
#pragma warning disable CA1860
// The code that's violating the rule is on this line.
#pragma warning restore CA1860
Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità none su nel file di configurazione.
[*.{cs,vb}]
dotnet_diagnostic.CA1860.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.