CA1853: Nepotřebné volání Dictionary.ContainsKey(klíč)
Vlastnost | Hodnota |
---|---|
ID pravidla | CA1853 |
Název | Nepotřebné volání Dictionary.ContainsKey(key) |
Kategorie | Výkon |
Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
Zavedená verze | .NET 7 |
Povoleno ve výchozím nastavení v .NET 9 | Jako návrh |
Příčina
Hovor Dictionary<TKey,TValue>.Remove(TKey) je strážen voláním Dictionary<TKey,TValue>.ContainsKey(TKey).
Popis pravidla
Není potřeba hlídat Dictionary.Remove(key)
Dictionary.ContainsKey(key)
. Dictionary<TKey,TValue>.Remove(TKey) už zkontroluje, jestli klíč existuje, a pokud neexistuje, vyvolá se.
Jak opravit porušení
Odeberte strážící kód, který volá Dictionary<TKey,TValue>.ContainsKey(TKey).
Příklad
Následující fragment kódu ukazuje porušení 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
Následující fragment kódu opraví porušení zásad:
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
Kdy potlačit upozornění
Pokud výkon není problém, je bezpečné potlačit upozornění.
Potlačení upozornění
Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.
#pragma warning disable CA1853
// The code that's violating the rule is on this line.
#pragma warning restore CA1853
Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v none
konfiguračním souboru.
[*.{cs,vb}]
dotnet_diagnostic.CA1853.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.