Share via


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 8 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.