@gbianchi La respuesta era incorrecta, Count no es reemplazo de Any por ningún motivo, además faltaban datos para responderla de buena manera y si me remito al estándar de la mayoría tampoco debería ser respondida porque el usuario no muestra su intento (o es solo a mí que se le puede votar negativo por eso?).
Luego los comentarios me parecen algo aireados, razón por la que yo no borraré los míos dejando solo los de él, porque me alude personalmente (que es el motivo porque te pedí a ti que borraras ambos) y por último es una discusión desactualizada, porque finalmente si editó la respuesta
@gbianchi No estoy de acuerdo, además que cuando le comenté su reacción no fue la mejor
@Pikoh Porque count es para contar, no para evaluar si existe al menos un elemento que cumpla la condición. No existe absolutamente ningún beneficio comparativo en hacer Count()>0
@Pikoh porque con IEnumerables el código se ejecuta solo cuando es necesario si está bien hecho. Count recorrería la lista completa mientras que Any vería que tiene al menos un elemento y listo
@Pikoh Porque Count(predicado) recorre TODA la lista Any(predicado) para cuando encuentra el primer elemento, Count es igual a Any solo en el caso que no hubiera predicado
@Mateo vale. Por un lado, habla de Any sin parametros, que efectivamente no va a recorrer elementos porque simplemente comprueba que existan en la fuente. Y por otro, legibilidad,en lo que puedo estar de acuerdo
@Yussef eso solo significa que Any es un pelin (probablemente inapreciablemente) mas eficiente que count. Lo cual para mi no es suficiente para desdeñar count como mala solucion
El unico equivalente en linq al Any, es hacer un first o firstordefault que se transforman en un TOP(1) o en un Limit 1 (dependiendo del motor)
@Pikoh Quieres clavar un clavo, y tienes un martillo y serrucho. Tomas el serrucho y golpeas el clavo, claro hiciste el trabajo pero no bien. Yo no contrato a ese carpintero
No digo por cierto que usar Any sería lo que yo recomendaría. Simplemente que usar count no tiene un efecto negativo apreciable hasta donde yo he experimentado
@Yussef no creo que ese simil sea aplicable a este caso. mas bien seria que uno clava el clavo de dos martillazos y el otro de tres. Practicamente inapreciable como digo
@Yussef eso es algo totalmente diferente. Yo tambien usaría any. Pero usar count no me parece una decisión suficiente para tachar una respuesta de erronea. Es solo mi opinión, por supuesto. Cada cual es libre
@Pikoh Quizas si la pregunta hubiera sido otra, y usara Count pero responde la pregunta, estaría bien...sería un detalle. Pero la pregunta era exactamente esa
@Pikoh Te insisto, Count es para contar y Any es para evaluar si existe algun elemento que cumpla la condición, que literalmente es la pregunta del OP. Responder con un Count es una mala respuesta existiendo el Any, no porque no funcione porque no todo lo que funciona está bien hecho en la programación
Les puedo hacer una consulta. Estoy usando una plataforma nocode para crear una página web pero siempre tengo el mismo problema en versión mobile. Cuando realizo las pruebas en la plataforma se ve perfecto todas las versiones multiplataforma. Pero cuando pruebo Inspeccionar se ve terrible
hay un espacio blanco al costado
De que forma lo podría solucionar me fije de arreglar las dimensiones en la plataforma y nada
millll gracias ya intento de poder corregirlo!!! :) es todo un tema porque debo exportar el código y trabajarlo en vs pero hay cosas que se suelen romper.
@Yussef no entro a valorar eso. Siempre he pensado que se le da una importancia excesiva a los votos tanto positivos como negativos. Pero bueno, cada uno es un mundo y hay personas mas susceptibles que otras. Yo personalmente no la habría votado negativo, y si habría comentado mi punto de vista antes de hacerlo en todo caso. Tal vez la reacción sea excesiva, pero me falta el contexto de si vosotros dos os habíais encontrado antes y si esos encuentros han causado esa reacción
@Yussef una respuesta erroneo es una respuesta que no responde la pregunta porque esta mal.. Si responde la pregunta, de una forma no optima, no es erronea.. es no optima... y es muy diferente...
@gbianchi La respuesta era escueta, usaba un ejemplo que no tenía relación con el caso el Op, y usaba Count en vez Any, todo sumado hacía que lo votara negativo. Es tan así que el usuario finalmente cambia su respuesta, no sin dejar un mensaje al final en tono irónico. Y yo te pedí borrar los comentarios porque ya no son válidos, porque editó la respuesta, que entiendo es un motivo de borrado
Y mira que a mi votan negativo por respuesta 100% correcta. Ahora si quizás publicaran una lista de usuarios a quienes no se les puede decir nada o votar en contra, me sería más fácil seguir el ritmo del sitio
@Yussef igual.. si any hace exists, entonces hace dos veces el query.. si hace un count.. hace una vez.. por eso no me gustan los frameworks que generan los querys magicamente... siempre prefiero ver la DB...
así puedo depurar y cambiar cosas cuando tengo consultas complejas
Había otra que guarba en un log, pero esa no recuerdo como era, se hacía en el web.config
Y para aclarar el tema del count vs any, hay un tipo de colección que guarda en una variable el tamaño de ella, entonces hacer Count()>0 o Any() es lo mismo. Pero cuando se le ingresan argumentos Count(a=>a.id==1) > 0 vs Any(a=>a.id==1) ahora el primero recorre todo y el segundo para cuando se encuentra el primer item que satisface la condición
Cuando se hace esto pero en una consulta, se convierte a una sentencia SQL, Count pasa a ser un select Count(*) y Any a usar Exists que también se detiene al encontrar el primero
Por otro lado First() usa TOP(1)
Que hasta donde creo recordar da un plan de ejecución similar con el exists
@gbianchi hace unos 5 años hice la comparación de SQL Server contra postgre y era casi idéntico, cambiaba en esas cosas que no son comunes como el limit y el top, pero la lógica era la misma
Pero evidentemente no podría asegurar que esto se cumple para todos los motores