Introducción a LINQ en C# - Cómo funciona LINQ por detrás

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 ก.ย. 2024

ความคิดเห็น • 13

  • @NetMentor
    @NetMentor  4 ปีที่แล้ว +6

    Blog: www.netmentor.es/Entrada/linq-csharp
    Twitter: twitter.com/NetMentorTW

  • @matiasferreyra8673
    @matiasferreyra8673 ปีที่แล้ว +1

    Excelente video, ahora entiendo muchas cosas que solo las hacia "de memoria" o porque "se hacen asi", aunque no sabia porque jaja. Gracias

  • @GeoH182
    @GeoH182 3 ปีที่แล้ว +2

    Gracias mentor, tus videos son lo maximo!

  • @beatriztriz619
    @beatriztriz619 4 ปีที่แล้ว

    Muchas gracias por publicar el vídeo antes!!!!

  • @MrElmarqueli
    @MrElmarqueli 3 ปีที่แล้ว +1

    Muy buenoooooo!!!!! mil gracias genial esto!!!!! saludosssss!!!

  • @jesusjoshimar
    @jesusjoshimar ปีที่แล้ว

    Excelente explicacion, gracias

  • @luiscamarillog
    @luiscamarillog 4 ปีที่แล้ว +1

    Excelente tus videos!

  • @PabloHelal
    @PabloHelal 4 ปีที่แล้ว

    Gracias, muy bueno.

  • @maclaren33
    @maclaren33 3 ปีที่แล้ว

    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 ?

    • @NetMentor
      @NetMentor  3 ปีที่แล้ว +5

      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 :/

    • @maclaren33
      @maclaren33 3 ปีที่แล้ว

      @@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 .

    • @NetMentor
      @NetMentor  3 ปีที่แล้ว +2

      Sin problema, si, la verdad que tienes razón, puede ser buena idea hacer un vídeo sobre el tema. Gracias por la idea 🙂

  • @enriqueruiz320
    @enriqueruiz320 4 ปีที่แล้ว

    🤪