CA1860: Hindari menggunakan metode ekstensi 'Enumerable.Any()'
Properti | Nilai |
---|---|
ID Aturan | CA1860 |
Judul | Hindari menggunakan metode ekstensi 'Enumerable.Any()' |
Golongan | Performa |
Perbaikan bersifat disruptif atau non-disruptif | Non-disruptif |
Diaktifkan secara default di .NET 8 | Sebagai saran |
Penyebab
Enumerable.Anydipanggil pada jenis yang memiliki properti , , atau IsEmpty
.Count
Length
Deskripsi aturan
Untuk menentukan apakah jenis koleksi memiliki elemen apa pun, lebih efisien dan lebih jelas untuk menggunakan Length
properti , , Count
atau IsEmpty
(jika memungkinkan) daripada memanggil Enumerable.Any metode .
Any()
, yang merupakan metode ekstensi, menggunakan kueri terintegrasi bahasa (LINQ). Lebih efisien untuk mengandalkan properti koleksi sendiri, dan juga mengklarifikasi niat.
Catatan
Aturan ini mirip dengan CA1827: Jangan gunakan Count()/LongCount() ketika Any() dapat digunakan. Namun, aturan tersebut berlaku untuk metode LinqCount()
, sementara aturan ini menyarankan penggunaan Count
properti .
Cara memperbaiki pelanggaran
Ganti panggilan ke Any() dengan panggilan ke Length
properti koleksi , , Count
atau IsEmpty
.
Contoh
Cuplikan kode berikut menunjukkan pelanggaran CA1860:
bool HasElements(string[] strings)
{
return strings.Any();
}
Function HasElements(strings As String()) As Boolean
Return strings.Any()
End Function
Cuplikan kode berikut memperbaiki pelanggaran:
bool HasElements(string[] strings)
{
return strings.Length > 0;
}
Function HasElements(strings As String()) As Boolean
Return strings.Length > 0
End Function
Kapan harus menekan peringatan
Aman untuk menekan peringatan ini jika performa tidak menjadi perhatian.
Menyembunyikan peringatan
Jika Anda hanya ingin menyembunyikan satu pelanggaran, tambahkan arahan praprosedur ke file sumber Anda untuk dinonaktifkan lalu aktifkan kembali aturannya.
#pragma warning disable CA1860
// The code that's violating the rule is on this line.
#pragma warning restore CA1860
Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none
dalam file konfigurasi.
[*.{cs,vb}]
dotnet_diagnostic.CA1860.severity = none
Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.
Aturan terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk