CA1853: Nepotřebné volání Dictionary.ContainsKey("klíč")

Vlastnost Hodnota
ID pravidla CA1853
Název Nepotřebné volání metody 'Dictionary.ContainsKey(key)'
Kategorie Výkon
Oprava, která může být destruktivní nebo nedestruktivní Nezlomitelný
Zavedená verze .NET 7
Povoleno ve výchozím nastavení v .NET 10 Jako návrh
Příslušné jazyky C# a Visual Basic

Příčina

Hovor Dictionary<TKey,TValue>.Remove(TKey) je chráněn voláním Dictionary<TKey,TValue>.ContainsKey(TKey).

Popis pravidla

Není potřeba hlídat Dictionary.Remove(key) s Dictionary.ContainsKey(key). Dictionary<TKey,TValue>.Remove(TKey) už zkontroluje, jestli klíč existuje, a pokud neexistuje, nic se nevyhodí.

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.