Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 3028|Respuesta: 0

[Fuente] .NET/C# colección Any() o Count(), que es más rápida

[Copiar enlace]
Publicado en 28/6/2023 19:34:31 | | | |
Requisitos: Recientemente, mis compañeros del equipo del proyecto cambiaron el recuento() de datos > 0 a Any() para juzgar si hay datos en la colección (no en la base de datos de consultas IQueryble), y luego preguntaron por qué se había cambiado (optimizado), pero no hubo respuesta.

Utiliza benchmarks para comparar cuál de los siguientes Any() y Count() es más rápido.

Empecemos por la conclusión (en .NET Framwork):Cuenta > Cualquiera() > Contea()En .NET 6, el rendimiento de Count() y Any() no es muy diferente, pero aun asíSe recomienda any() para recopilar si hay datos

El código de prueba es el siguiente:


.NET Framework 4.8.1Los datos de referencia son los siguientes:



.NET 6Los datos de referencia son los siguientes:



¿No dijiste eso en .NET Framwork Any() > Count() rendimiento? ¿Por qué Count() es más rápido que List? La razón es que el método subyacente Count() de List llama al campo Count, como se muestra en la figura siguiente:




(Fin)





Anterior:.NET/C# parámetro de método NULL
Próximo:ASP.NET la diferencia entre ThreadStatic, CallContext y HttpContext
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com