Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


CA1853: Niepotrzebne wywołanie elementu "Dictionary.ContainsKey(key)"

Właściwości Wartość
Identyfikator reguły CA1853
Tytuł Niepotrzebne wywołanie elementu "Dictionary.ContainsKey(key)"
Kategoria Wydajność
Poprawka powodująca niezgodność lub niezgodność Niezgodność
Wprowadzona wersja .NET 7
Domyślnie włączone na platformie .NET 9 Jako sugestia

Przyczyna

Wywołanie metody jest Dictionary<TKey,TValue>.Remove(TKey) chronione za pomocą wywołania metody Dictionary<TKey,TValue>.ContainsKey(TKey).

Opis reguły

Nie ma potrzeby ochrony Dictionary.Remove(key) za pomocą polecenia Dictionary.ContainsKey(key). Dictionary<TKey,TValue>.Remove(TKey) już sprawdza, czy klucz istnieje i nie zgłasza go, jeśli nie istnieje.

Jak naprawić naruszenia

Usuń kod ochrony, który wywołuje metodę Dictionary<TKey,TValue>.ContainsKey(TKey).

Przykład

Poniższy fragment kodu przedstawia naruszenie ca1853:

Dictionary<string, int> d = new();
if (d.ContainsKey("name"))
    d.Remove("name");

Poniższy fragment kodu naprawia naruszenie:

Dictionary<string, int> d = new();
d.Remove("name");

Kiedy pomijać ostrzeżenia

Można bezpiecznie pominąć ostrzeżenie, jeśli wydajność nie jest problemem.

Pomijanie ostrzeżenia

Jeśli chcesz po prostu pominąć pojedyncze naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.

#pragma warning disable CA1853
// The code that's violating the rule is on this line.
#pragma warning restore CA1853

Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji.

[*.{cs,vb}]
dotnet_diagnostic.CA1853.severity = none

Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia dotyczące analizy kodu.