CA1853 : appel inutile à « Dictionary.ContainsKey(key) »
Propriété | Value |
---|---|
Identificateur de la règle | CA1853 |
Titre | Appel inutile à 'Dictionary.ContainsKey(key)' |
Catégorie | Performances |
Le correctif est cassant ou non cassant | Sans rupture |
Version introduite | .NET 7 |
Activé par défaut dans .NET 8 | Comme suggestion |
Cause
Un appel à Dictionary<TKey,TValue>.Remove(TKey) est protégé par un appel à Dictionary<TKey,TValue>.ContainsKey(TKey).
Description de la règle
Il n’est pas nécessaire de protéger Dictionary.Remove(key)
avec Dictionary.ContainsKey(key)
. Dictionary<TKey,TValue>.Remove(TKey) vérifie déjà si la clé existe et n’est pas levée si elle n’existe pas.
Comment corriger les violations
Supprimez le code de protection qui appelle Dictionary<TKey,TValue>.ContainsKey(TKey).
Exemple
L’extrait de code suivant montre une violation de CA1853 :
Dictionary<string, int> d = new();
if (d.ContainsKey("name"))
d.Remove("name");
Class C
Shared Sub S()
Dim d As New Dictionary(Of String, Integer)
If d.ContainsKey("name") Then
d.Remove("name")
End If
End Sub
End Class
L’extrait de code suivant corrige la violation :
Dictionary<string, int> d = new();
d.Remove("name");
Class C
Shared Sub S()
Dim d As New Dictionary(Of String, Integer)
d.Remove("name")
End Sub
End Class
Quand supprimer les avertissements
Vous pouvez supprimer un avertissement en toute sécurité si les performances ne constituent pas un problème.
Supprimer un avertissement
Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.
#pragma warning disable CA1853
// The code that's violating the rule is on this line.
#pragma warning restore CA1853
Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none
dans le fichier de configuration.
[*.{cs,vb}]
dotnet_diagnostic.CA1853.severity = none
Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour