Expresiones lambda en un ejemplo real en C# .Net, programando sin utilizar if

Поділитися
Вставка
  • Опубліковано 9 лис 2024
  • En este video te mostrare como puedes utilizar las expresiones lambda y encapzular su funcionalidad en una clase para que puedas reutilizarlas, no utilizaremos la sentencia if en este video.
    Si quieres apoyarme y darme para una cerveza puedes hacerlo por aquí: paypal.me/Hecto...
    Puedes apoyarme desde 0.5 USD al mes uniéndote como miembro al canal aquí: / @hdeleonnet
    También puedes vía patreon: / powerhdeleon
    Todos mis podcasts: • Podcast #1 - ¿Cuál es ...
    Curso de MVC .Net: • Curso de MVC .Net C#| ...
    Curso de MVC Api .Net: • Curso de MVC API .Net ...
    Curso de facturación electrónica en c# .Net: • ¿Cómo convertir archiv...
    Todos mis videos sobre facturación electrónica: • ¿Cómo convertir archiv...
    La falta de respeto tanto a mí como a cualquier otra persona y el SPAM son razones de bloqueo en mi canal.
    "Copyright Disclaimer Under Section 107 of the Copyright Act 1976, allowance is made for "fair use" for purposes such as criticism, comment, news reporting, teaching, scholarship, and research. Fair use is a use permitted by copyright statute that might otherwise be infringing. Non-profit, educational or personal use tips the balance in favor of fair use"
    ---------------------------------------------------------------------------------------------------------------
    Sigueme en twitter ⇒ / powerhdeleon
    Sigueme en facebook ⇒ / hdeleon666
    Mi Sitio web ⇒ hdeleon.net
    #programación #dotnet #csharp

КОМЕНТАРІ • 128

  • @hdeleonnet
    @hdeleonnet  3 роки тому +39

    Si te ha gustado el video, puedes apoyarme dejando un pulgar arriba y compartiendo en tus redes sociales

  • @faybercova
    @faybercova 3 роки тому +6

    Estas clases son magistrales. no tienen precio.

  • @Shian_n
    @Shian_n 2 роки тому +2

    Eres de los pocos canales a los que me he suscrito que de verdad valen la pena

  • @sgssergio
    @sgssergio Рік тому

    El video es excelente, el codigo que queda luego es muy elegante y conciso. Por lo que veo esta funcionalidad la ofrece y con esteroides el paquete FluentValidations.

  • @lewisburgos9799
    @lewisburgos9799 Рік тому +1

    Un colega me hice el insection de no usar if hace ya unos meses, desde entonces me he sentido avergonzado de cada if que he colocado. No obstante con esta manera creo que ya entendi a lo que se refería. Muchas gracias

  • @RASantyreich
    @RASantyreich 3 роки тому +1

    Como me encanta este canal , gracias , este video me re sirvio

  • @davidbrutalzuluaga1898
    @davidbrutalzuluaga1898 3 роки тому +21

    Gracias Héctor, me agrada mucho tu canal y me gusta cuando tocas temas más avanzados, ya que de lo básico ya hay mucho, pero ya de cosas más intermedias o avanzadas escasa en internet y más en español
    Un saludo desde Colombia

  • @juanlopez-mo3ef
    @juanlopez-mo3ef 2 роки тому

    Hermoso video Hector, por fin me voy a sacar la costumbre de meter 90 if para validar :p

  • @ioannisblougouras9083
    @ioannisblougouras9083 2 роки тому +1

    La verdad Héctor muy buenos videos los tuyos un saludo

  • @AdidasJericho
    @AdidasJericho 2 роки тому

    Súper me encanta, sabes yo siempre intento ingeniármelas con lo poco que sé para escribir lo menos posible pero con las E.L. Pff me solucionará la vida en muchos sentidos

  • @luimadlo
    @luimadlo 2 роки тому +1

    Explica super bien. Lo felicito! Excelentes videos. Tengo 21 años programando con tecnología Microsoft, y siempre es bueno aprender y refrescar.

  • @macroman20062007
    @macroman20062007 3 роки тому +1

    Maestro de Leon, antes que nada déjeme enviarle un respeto como dijera el Tlatoani Carlos Ballarta, y decirle que gracias a usted yo he podido adquirir nuevas habilidades y muchos trucos que me han servido en mi diario que hacer por he querido siempre poder invitarlo a una muy merecida cerveza, pero como se me hace por el momento viajar a las tierras mexicanas me voy a suscribir a su canal como semi-senior, muchas gracias por compartir sus conocimientos con todo el proletariado y un saludo desde Panamá de un Salvadoreño que ama mucho los tacos

    • @hdeleonnet
      @hdeleonnet  3 роки тому

      Muchas gracias a ti Jesús

  • @radaniel8911
    @radaniel8911 3 роки тому +4

    Amigo muy interesante tu video
    Bastante funcional y tengo q admitir que hoy aprendí algo nuevo.
    Manita arriba (Y) y Saludos desde CR :)

  • @jannmoreno283
    @jannmoreno283 3 роки тому +2

    Gracias hermano, supongo que por debajo es así como funciona el paquete de FluentValidation, gran explicación

  • @romansad
    @romansad 3 роки тому

    Excelente video me cae muy bienque los ejemplos sean con bebidas, en especial si es cerveza, le da un toque mas refrescante e incentivador al video.

  • @Heimaster
    @Heimaster 3 роки тому +1

    excelente hace años no via un post asi. gracias por tu aporte

  • @cristianmosteiro6458
    @cristianmosteiro6458 Рік тому

    Muy buena la explicación. Gracias

  • @SimaDamian
    @SimaDamian 3 роки тому +1

    Héctor para este caso en ves de un Where y el Count usar el Any es mucho mas claro. Y por otro lado, crear dos clases para la validacion no me parece apropiado, teneiendo en cuenta que el metodo Validate podría caber tranquilamente en la responsabilidad del modulo (clase) BeerValidate. Pero despues cuando usas el genérico si queda apropiado la separacion.
    A muchos le abre un poco la cabeza estos ejemplos!
    sigue así man, y muchas gracias por compartir!

  • @tarralover7636
    @tarralover7636 3 роки тому +5

    Aguante las expresiones lambda, hasta ahora solo había abusado de linq, linq, linq se pueden hacer mil cosas, pero poder crear lo que quieras con lambda es hermoso. Gracias por compartir!

  • @nelson3391
    @nelson3391 3 роки тому

    Excelente presentación. Ha sido muy útil. Gracias!

  • @luisquispe4653
    @luisquispe4653 3 роки тому +1

    Genial, deberías seguir subiendo este tipo de videos de nivel intermedio y/o avanzado que son escasos.

  • @tonym5857
    @tonym5857 3 роки тому +2

    Muy buen video, en general excelente canal, llegue aca por C# Sharp Guy 💪👏

  • @Icaro204
    @Icaro204 3 роки тому

    Diioooos, nueov suscriptor te lo haz ganado excelente material

  • @jesuspereiraoficial
    @jesuspereiraoficial 3 роки тому +1

    Eres el mejor Bro! Excelente video

  • @martinruiz1407
    @martinruiz1407 3 роки тому +2

    Perfectamente bien Utilizado expression Lamda.

  • @engel15496
    @engel15496 3 роки тому +1

    Muy bueno el video, las primeras dos expresiones en el array de validations son redundantes porque ya se contemplan en las dos de abajo

  • @MrEsanabriab
    @MrEsanabriab 3 роки тому

    Excelentes videos tenés amigo. Genial esta explicación. Saludos.

  • @MacBoy1986
    @MacBoy1986 3 роки тому

    Muy bueno, sigue subiendo mas videos así!!!
    Crack!!!

  • @jcdiazgm
    @jcdiazgm 3 роки тому

    Fantástico Hector, tanto el tema como la explicación. Soy algo novato en C# y tengo exactamente un método que valida 17 columnas de un Excel. Pero necesito retornar el error, el mensaje de error y el valor incorrecto. En la respuesta a Adam Mendez hablas de algo como esto: claro se puede, haces un objeto respuesta y lo manejas con Func
    public class Respuesta{
    public bool Result{get;set;}
    public string Message{get;set;}
    }
    Pero no entiendo en donde lo uso, que pena pero soy algo novato. Gracias

    • @hdeleonnet
      @hdeleonnet  3 роки тому +2

      quiza haga un video más avanzado para explicarlo

  • @williamdavid508
    @williamdavid508 3 роки тому

    excelente video, muy bueno.

  • @reinises7790
    @reinises7790 3 роки тому +1

    Me encantan tus videos !!

  • @marcelovargasbo
    @marcelovargasbo 3 роки тому

    Excelente video aula!

  • @luiseduardoquirolafrank1182
    @luiseduardoquirolafrank1182 3 роки тому

    Excelente video Héctor. Felicitaciones!

  • @joanvillamarin233
    @joanvillamarin233 3 роки тому +1

    Excelente ejemplo 👌🏻 ¡crack !

  • @williandavidlopezsanchez8331
    @williandavidlopezsanchez8331 3 роки тому

    Que bonito código.

  • @antoniohernandezhernandez6081
    @antoniohernandezhernandez6081 3 роки тому

    Gracias hdeleon, muy bueno excelente gracias!!

  • @rguere
    @rguere 3 роки тому +2

    por supuesto tienes mi like, muy bueno excelente Hector!!!! gracias!!

  • @EfraínDuranC
    @EfraínDuranC 2 роки тому

    Mind blown 🤟🏼

  • @ricardovarela2638
    @ricardovarela2638 3 роки тому +1

    Esta chingonsisimo este video

  • @manuart1983
    @manuart1983 3 роки тому +2

    Esooooooooooo Super Crackkkkkk. Muchas Gracias

  • @enriquemoreno8444
    @enriquemoreno8444 3 роки тому

    Excelente profesor!

  • @cuatrodelimon
    @cuatrodelimon 3 роки тому +1

    Chingon este video, más vídeos asi

  • @deynerdejesus3689
    @deynerdejesus3689 3 роки тому +1

    Hola, muchas gracias por tus excelentes expliciones.
    Me surge una duda con la utilización de esa clase de validaciones, cómo podría retornar un string con los campos que han fallado las validaciones?

  • @lalokura1000
    @lalokura1000 3 роки тому +1

    Muy Bueno

  • @MrElmarqueli
    @MrElmarqueli 3 роки тому +2

    pa genial jajajajaaajaj expectacular Hectorrrrr ajjajajaajj me encanto esto.

  • @ADANMENDEZjam3001490
    @ADANMENDEZjam3001490 3 роки тому +3

    Muy buen video, una pregunta, que pasa si tiene un set de validaciones y quieres asignarle a cada validación un código y mensaje de error (como los códigos y mensajes de error del XML que asigna el SAT a las validaciones de cada complemento de un CFDI ) por si no se cumple y obtener ese código y mensaje de error después de la validación en caso de fallar. Gracias y saludos, me encanta tu canal

    • @hdeleonnet
      @hdeleonnet  3 роки тому +5

      claro se puede, haces un objeto respuesta y lo manejas con Func
      public class Respuesta{
      public bool Result{get;set;}
      public string Message{get;set;}
      }

  • @kervytmarrerorosales535
    @kervytmarrerorosales535 3 роки тому

    Gracias ❤️

  • @LuisMorales-nl5dx
    @LuisMorales-nl5dx 3 роки тому

    Eres un crack amigo 👌🙏🏽🙌🏾

  • @ccghy
    @ccghy 3 роки тому +1

    excelente, buenísimo video !

  • @Catuchee
    @Catuchee 3 роки тому +14

    gracias a tus videos ya no hago tantos espagueti XD

  • @alfacode7299
    @alfacode7299 3 роки тому +2

    Super tu video pero me gustaría saber por cual función falló, es decir, devolver un mensaje por ejemplo: el número de cacteres no debe ser menor a 10

  • @cesarcastano
    @cesarcastano 3 роки тому

    Excelente. Gracias

  • @RichardGonzalez-azb
    @RichardGonzalez-azb 3 роки тому

    Excelente video, Saludos.

  • @alconlm
    @alconlm 3 роки тому

    Buen video 👍

  • @CarlosMGomez
    @CarlosMGomez Рік тому

    Me encanta tu explicación bro... tienes cursos en alguna plataforma?

    • @hdeleonnet
      @hdeleonnet  Рік тому

      Claro, ahora mismo están en descuento: hdeleon.net/cursos-premium/

  • @emiliowildberger7151
    @emiliowildberger7151 3 роки тому

    exelente muchas gracias, porfa un video para validar las DataAnotations si se puede

    • @hdeleonnet
      @hdeleonnet  3 роки тому +1

      ua-cam.com/video/rCYGd3_ADn4/v-deo.html

    • @emiliowildberger7151
      @emiliowildberger7151 3 роки тому

      @@hdeleonnet y como seria sin utilizar mvc por ejemplo en wpf

  • @angelmorales5250
    @angelmorales5250 3 роки тому

    Excelente video Hector, para los que queremos adentrarnos cada vez mas en la programación funcional está perfecto y super explicado!!
    Ahora una consulta, que pasa si yo quiero retroalimentar el error de la expresión lambda?
    Es decir, si por ejemplo, name != null mostrarle un msj al usuario que diga que debe escribirlo, es decir una retroalimentación al usuario que vaya desde el método static validations?

  • @danielmendezdeveloper1748
    @danielmendezdeveloper1748 3 роки тому +2

    Está muy interesante, pero como podría saber cuál validación falló y poder devolver un mensaje personalizado????

    • @bilbo88
      @bilbo88 3 роки тому

      Daniel, si lo descubriste compártelo. Es lo primero que se me ha pasado por la cabeza cuando he visto el vídeo.
      Pensando en alto se me ocurre enviar un string con el nombre del error en vez de un true o un false, podría funcionar, no?

    • @danielmendezdeveloper1748
      @danielmendezdeveloper1748 3 роки тому +1

      @@bilbo88 Mmm pues no hice las pruebas la verdad, pero desde el primer momento te dice que un predicado solo devuelve valores boleanos, asi que no creo se pueda devolver un string :(

  •  3 роки тому

    Hola Hector, excelente video junto con el anterior video, me cae de perlas este video ya que estoy desarrollando un sistema de carga de datos desde json y tengo que hacer validaciones de (tipos de datos) valores; globalmente Predicate retorna True/False entre todas las validaciones, ¿Cómo se pudiera retornar y con qué método (creería con el Action pero como no retorna nada...) saber cuál elemento de la colección del modelo produjo el error de validación?, gracias por todo.

  • @marcocordova5417
    @marcocordova5417 2 роки тому

    Eres un cracksote gracias por tanta enseñanza bro ahi luego que se armen las cheves xd!

  • @marcoscardona989
    @marcoscardona989 3 роки тому

    se puede usar en metodo .Any() en vez de hacer un ToList, Where y Count

    • @hdeleonnet
      @hdeleonnet  3 роки тому

      Si pero igual necesitas tolist

  • @josueargueta2506
    @josueargueta2506 3 роки тому +1

    Excelente explicación Héctor, pero como podría hacer para obtener cual fue el que dio falso.

    • @hdeleonnet
      @hdeleonnet  3 роки тому +1

      Regresas un list de un tipo objeto que tengas resultado bool y mensaje string. en lugar de bool, y evaluas fuera de la función con count si deseas ver si uno fallo o foreach si deseas mostrar los messages

  • @thetradingrobots3148
    @thetradingrobots3148 3 роки тому

    Buenisima man!

  • @ariel6148
    @ariel6148 3 роки тому +1

    Dejen likes amigos

  • @hamelhmc
    @hamelhmc 3 роки тому

    Una pregunta que ventajas y desventajas tienes al utilizar Typescript en React ? me gustaría saber tu opinión graciias : )

    • @hdeleonnet
      @hdeleonnet  3 роки тому

      Mejor control de código, maneja interfaces con lo cual puedes aplicar patrones de mejor manera que son ts. A parte intellisense le ayudas a que te corrija y eso ahorra tiempo, saber que algo está mal antes de ejecutarlo es ganancia.

  • @williamprogramer4168
    @williamprogramer4168 3 роки тому +1

    Crack

  • @maheza36
    @maheza36 3 роки тому

    Una consulta, mejora la performance usar solo lambda sin if?

  • @TRG0x0
    @TRG0x0 3 роки тому

    Nunca había visto usar las lambdas así, ¡ahí tienes mi like y sub! A ver que más cosas descubro por aquí :)
    Por cierto, ¿en lugar del " .Where().Count() == 0 " no sería mejor aprovecharse del " .Any() " ?

  • @TheMrfonchi
    @TheMrfonchi 2 роки тому +1

    Venia buscando cobre y encontré oro, tendras algo relacionado a wrapper classes en c#?

    • @hdeleonnet
      @hdeleonnet  2 роки тому

      Por ahora no, espero pronto hacer algo con wrapper que sean intermediarios de cosas utiles de C++

  • @christianboada95
    @christianboada95 Рік тому

    Se puede usar Any en vez del Where

  • @alexandrohdez3982
    @alexandrohdez3982 3 роки тому +2

    mucha abstraccionn😂👏👏👏

  • @tarralover7636
    @tarralover7636 3 роки тому

    Una consulta Hector, por lo que he visto en tus videos y en los lives dices que trabajas como freelance o algo así, me causa curiosidad saber si cada vez que haces un proyecto también creas test unitarios y todos esos pasos para llegar a producción. ¿Lo haces siempre?, ¿Depende del presupuesto? o de la complejidad del proyecto?. ojala puedas responderme Que tengas un buen día

    • @hdeleonnet
      @hdeleonnet  3 роки тому +2

      Trabajo en mis propios proyectos, y siempre tienen pruebas unitarias todos los que he hecho desde el 2018

    • @tarralover7636
      @tarralover7636 3 роки тому +1

      @@hdeleonnet Muchas gracias por responder. Realmente espero que te vaya super, tu contenido es excelente

  • @chloepurple3565
    @chloepurple3565 3 роки тому

    Por qué tienes varias versiones de visual y sql?

  • @nestedernest
    @nestedernest 3 роки тому +2

    ¿Se puede romper el where?

  • @oh-vito
    @oh-vito 2 роки тому

    programando sin utilizar if. pensé que te referias a usar un especie de filter, eso hago yo para evitar demasiados if pero en javascript.

  • @cesarbenavides1369
    @cesarbenavides1369 2 роки тому

    En linq tenermos la foncion Any(...) que equivale a Where(...).Count() >= 0

  • @puchotec3830
    @puchotec3830 Рік тому

    Hola cómo pudiera crear una función que busque y desabilite todos los botones de un formulario

  • @popularfan5893
    @popularfan5893 3 роки тому

    Sinceramente prefiero usar if. Aunque como dices es interesante.

  • @condorcol7816
    @condorcol7816 3 роки тому

    Que tipo de interfaces se usan para internet de las cosas?

  • @centurion3708
    @centurion3708 3 роки тому

    Me aparecio este video pero no se C# sino Java, pero me quede por curiosidad en realidad se parecen mucho los lenguajes, aunque me gusta mas la => de c# que la -> de java

  • @alexanderalegre3133
    @alexanderalegre3133 3 роки тому

    Esto es muy parecido a FluentValidation no?

  • @rodrigo6459
    @rodrigo6459 3 роки тому +2

    Estimado... hay un error... para convertir a lista se usa el System.Linq, no el System.Collections.Generics

  • @IconicSounds
    @IconicSounds 3 роки тому

    daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamn

  • @diego_solis
    @diego_solis 3 роки тому

    Damnnnn

  • @FernandoZamudioC
    @FernandoZamudioC 3 роки тому

    Y yo q pensaba q sabia lamda !

  • @alexrigar
    @alexrigar 3 роки тому

    Que benefició tiene usar lambdas ?

  • @JoseManuelLopezHernandez
    @JoseManuelLopezHernandez 3 роки тому

    "¿Esponja enloqueciste?"

  • @wavasque
    @wavasque Рік тому

    Saludos Hdeleon , me puedes apoyar a que esta clase se pueda reutilizar, así como la case de DATAvalidator?
    **EL obj FAMILIAS se parametro
    public class DATAvallidation
    {
    public static readonly Predicate[] validations =
    {
    (d) => d.NombreFamilia != null,
    (d) => d.NombreFamilia != null && d.NombreFamilia.Count() < 10,
    };
    }
    public class DATAvalidator
    {
    public static bool validate(T data, params Predicate[] validations) =>
    validations.ToList().Where(d =>
    {
    return !d(data);
    }).Count() == 0;
    }

  • @NADXUS
    @NADXUS 3 роки тому +5

    No utilizo if pero si utilizo X > 5 ? console.log("Mayor que 5, es un buen chiste") : console.log("este chiste da pena");
    Solo los programadores de javascript lo entenderán xd

  • @benja8850
    @benja8850 3 роки тому

    no te pases. El if es la vida.

  • @MrElmarqueli
    @MrElmarqueli 3 роки тому

    Hola de nuevo ajajjaja le di tanto que lo lleve por le lado logico ajajajjaj haber que les parece:
    public static bool Validate(List Objet, params Predicate[] validations)
    {
    bool Resultado =true; // aca declaro la variable como true
    foreach (T item in Objet)
    {
    Resultado = Resultado ^ (validations.ToList().Where(d => !d(item)).Count() == 0); // y aca hago una operacion logica
    }
    return Resultado;
    }
    siguiendo esta logica:
    Console.WriteLine(true ^ true); // output: False
    Console.WriteLine(true ^ false); // output: True
    Console.WriteLine(false ^ true); // output: True
    Console.WriteLine(false ^ false); // output: False
    Y sin if!!!!!! jajajaajj gracias a tus videos se aprende enormemente agradecido de que existas ajaja salu2.

    • @wavasque
      @wavasque Рік тому

      Como ejecutas el metodo ?
      result = Validate(obj, ?)

    • @MrElmarqueli
      @MrElmarqueli Рік тому

      @@wavasque Hola, el tema que el código que puse se basa en lo que explica Héctor, este código es uno personal usando lo explicado por él, donde tu pones el signo de (?) ahí va el (params Predicate[] validations) que es lo que explica Héctor en el video cuando crea la clase Validations en la clase BeerValidations, ahi en vez de el signo de ? pones la BeerValidations class, Estudia bien el video el lo explica muy bien. Solo luego tienes que adaptar el concepto la ida a tu proyecto.

  • @jorgevillordo5471
    @jorgevillordo5471 3 роки тому

    csharpbeerrock

  • @mariate9335
    @mariate9335 3 місяці тому

    Se me terminó el cerebro

  • @MrElmarqueli
    @MrElmarqueli 3 роки тому

    Hola Héctor haber con esto le estoy buscando la vuelta para adaptarlo a tu logica pero no doy con la tecla sin usar un if:
    public static bool Validate(List Objet, params Predicate[] validations)
    {
    bool Resultado = false;
    foreach (T item in Objet)
    {
    Resultado = validations.ToList().Where(d => !d(item)).Count() == 0;
    }
    return Resultado;
    }
    la cosa que esto no funca. tendria que hacer cono un if dentro del foreach para salir del bucle en caso de que en algun item me de false pero no quiero usar if ajjajajajjj se te ocurre algo?

  • @siemprequierovolar
    @siemprequierovolar Рік тому +1

    Ya tienen if dentro las expresiones Lambda.

  • @patricioamarelle8585
    @patricioamarelle8585 2 місяці тому

    Muy bueno