Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 3028|Yanıt: 0

[Kaynak] .NET/C# koleksiyonu Any() veya Count() ile daha hızlıdır

[Bağlantıyı kopyala]
Yayınlandı 28.06.2023 19:34:31 | | | |
Gereksinimler: Son zamanlarda, proje ekibindeki meslektaşlarım veri sayısını 0 > Any() olarak değiştirerek koleksiyonda (IQueryble sorgu veritabanı değil) veri olup olmadığını değerlendirdiler ve neden değiştirildiğini (optimize edilmiş) sordular, ancak cevap yoktu.

Aşağıdaki Any() ve Count() örneklerinden hangisinin daha hızlı olduğunu karşılaştırmak için benchmarklar kullanın.

Sonuçla başlayalım (.NET Framwork içinde):Sayı > Herhangi bir () > Sayı().NET 6'da Count() ve Any() performansı çok farklı değil, ama yine deHerhangi bir () veri toplamak için önerilir

Test kodu şu şekildedir:


.NET Framework 4.8.1Kıyaslama verileri aşağıdaki gibidir:



.NET 6Kıyaslama verileri aşağıdaki gibidir:



.NET Framwork Any() > Count() performansında bunu söylememiş miydiniz? Count() neden List'ten daha hızlı? Bunun nedeni, List'in altta yatan Count() yönteminin Count alanını çağırmasıdır; aşağıdaki şekilde gösterildiği gibi:




(Son)





Önceki:.NET/C# metod parametresi NULL null
Önümüzdeki:ASP.NET ThreadStatic, CallContext ve HttpContext arasındaki fark
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com