Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 3028|Jawab: 0

[Sumber] .NET/C# collection Any() atau Count() yang lebih cepat

[Salin tautan]
Diposting pada 28/06/2023 19.34.31 | | | |
Persyaratan: Baru-baru ini, rekan-rekan saya di tim proyek mengubah data count() > 0 menjadi Any() untuk menilai apakah ada data dalam koleksi (bukan database kueri IQueryble), dan kemudian bertanya mengapa data tersebut diubah (dioptimalkan), tetapi tidak ada jawaban.

Gunakan tolok ukur untuk membandingkan mana dari Any() dan Count() berikut yang lebih cepat.

Mari kita mulai dengan kesimpulan (dalam .NET Framwork):Hitung > Apapun() > Hitungan()Di .NET 6, performa Count() dan Any() tidak jauh berbeda, tetapi tetap sajaAny() direkomendasikan untuk mengumpulkan apakah ada data

Kode pengujiannya adalah sebagai berikut:


Kerangka Kerja .NET 4.8.1Data patokan adalah sebagai berikut:



.NET 6Data patokan adalah sebagai berikut:



Bukankah Anda mengatakan itu di .NET Framwork Any() > Count() performa? Mengapa Count() lebih cepat dari List? Alasannya adalah bahwa metode Count() yang mendasari List memanggil bidang Count, seperti yang ditunjukkan pada gambar di bawah ini:




(Akhir)





Mantan:Parameter metode .NET/C# NULL null
Depan:ASP.NET perbedaan antara ThreadStatic, CallContext, dan HttpContext
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com