CA1853: Panggilan yang tidak perlu ke 'Dictionary.ContainsKey(key)'
Properti | Nilai |
---|---|
ID Aturan | CA1853 |
Judul | Panggilan yang tidak perlu ke 'Dictionary.ContainsKey(key)' |
Golongan | Performa |
Perbaikan bersifat disruptif atau non-disruptif | Non-disruptif |
Versi yang diperkenalkan | .NET 7 |
Diaktifkan secara default di .NET 9 | Sebagai saran |
Panggilan ke Dictionary<TKey,TValue>.Remove(TKey) dijaga dengan panggilan ke Dictionary<TKey,TValue>.ContainsKey(TKey).
Tidak perlu menjaga Dictionary.Remove(key)
dengan Dictionary.ContainsKey(key)
.
Dictionary<TKey,TValue>.Remove(TKey) sudah memeriksa apakah kunci ada dan tidak melemparkan jika tidak ada.
Hapus kode penjaga yang memanggil Dictionary<TKey,TValue>.ContainsKey(TKey).
Cuplikan kode berikut menunjukkan pelanggaran 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
Cuplikan kode berikut memperbaiki pelanggaran:
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
Aman untuk menekan peringatan jika performa tidak menjadi perhatian.
Jika Anda hanya ingin menyembunyikan satu pelanggaran, tambahkan arahan praprosedur ke file sumber Anda untuk dinonaktifkan lalu aktifkan kembali aturannya.
#pragma warning disable CA1853
// The code that's violating the rule is on this line.
#pragma warning restore CA1853
Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none
dalam file konfigurasi.
[*.{cs,vb}]
dotnet_diagnostic.CA1853.severity = none
Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.
Umpan balik .NET
.NET adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: