Excelente video, ahora entiendo muchas cosas que solo las hacia "de memoria" o porque "se hacen asi", aunque no sabia porque jaja. Gracias
@beatriztriz6194 жыл бұрын
Muchas gracias por publicar el vídeo antes!!!!
@MrElmarqueli3 жыл бұрын
Muy buenoooooo!!!!! mil gracias genial esto!!!!! saludosssss!!!
@jesusjoshimar Жыл бұрын
Excelente explicacion, gracias
@luiscamarillog4 жыл бұрын
Excelente tus videos!
@PabloHelal4 жыл бұрын
Gracias, muy bueno.
@maclaren333 жыл бұрын
una pregunta el resultado normalmente yo en lugar de utilizar el IEnumerable utilizo List , me podrias ayudar indicando cuando debo utilizar el List y cuando el IEnumerable ?
@NetMentor3 жыл бұрын
Hola, pues depende un poco. Es probable que utilizando List no estés haciendo nada mal porque depende del escenario. Básicamente IEnumerable es la definicion de lo que linq va a realizar, mientras que se ejecuta cuando utilizas .ToList() (o to array, etc.) Un ejemplo facil para ver este funcionamiento es que cuando llamas a la base de datos utilizando entity framework la consulta no se ejecuta hasta que haces el .ToList() Otro ejemplo para verlo dentro de un programa tienes un método que devuelve IEnumerable ; si a los libros le pones un filtro y haces libros.where(nuevos) y un poco mas adelante en el código, por lo que sea tienes otro filtro distinto y haces otra vez libros.where(tapaDura) ninguno de los dos where es ejecutado hasta que intentas acceder al resultado final, ya sea con un .ToList() un .Select() etc. es muy común ver por ahí, cosas como Ienumerable libros =MetodoQueDevuevleLibros(); var nuevos = libros.where(nuevos).tolist(); var nuevosytapadura = nuevos.where(tapadura).Tolist() Este bloque de código por desgracia es común y cada vez que ejecutas el .ToList() estas materializando/ejecutando la query y por tanto almacenando el resultado en memoria Para el ejemplo anterior puedes hacer algo como Ienumerable libros =MetodoQueDevuevleLibros(); libros = libros.where(nuevos); libros = libros.where(tapadura); libros = libros.ToList(); y tiene la diferencia de que solo se "materializa" una vez. Finalmente a groso modo, dos puntos: La idea principal (mejor rendimiento) es que solo tengas que materializar la coleccion en una List una única vez en tu sistema, para tenerla una única vez en memoria. Por ejemplo si únicamente quieres iterar sobre los elementos, con IEnumerable deberíá bastar (si la query es a una base de datos, si es de una api te va a devolver una lista) Pero si necesitas modificiar los elementos añadir o eliminar, debes utilziar listas. espero que haya quedao claro, me ha quedado bastante extenso el mensaje :/
@maclaren333 жыл бұрын
@@NetMentor WOW mega claro gracias por tomarte el tiempo de explicarlo tan bien se te agradece y bueno no creo ser el unico que tiene esta duda buscando en internet hay solo explicaciones en portugues , ingles, seria full bueno que algun rato hagas un video de lo que me explicaste aqui para todos los demas que tienen esta duda. muchas gracias hermano .
@NetMentor3 жыл бұрын
Sin problema, si, la verdad que tienes razón, puede ser buena idea hacer un vídeo sobre el tema. Gracias por la idea 🙂