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

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

Пікірлер: 127

  • @hdeleonnet
    @hdeleonnet3 жыл бұрын

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

  • @faybercova
    @faybercova2 жыл бұрын

    Estas clases son magistrales. no tienen precio.

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

  • @Shian_n
    @Shian_n Жыл бұрын

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

  • @cristianmosteiro6458
    @cristianmosteiro6458 Жыл бұрын

    Muy buena la explicación. Gracias

  • @RASantyreich
    @RASantyreich3 жыл бұрын

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

  • @lewisburgos9799
    @lewisburgos9799 Жыл бұрын

    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

  • @davidbrutalzuluaga1898
    @davidbrutalzuluaga18983 жыл бұрын

    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-mo3ef2 жыл бұрын

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

  • @ioannisblougouras9083
    @ioannisblougouras90832 жыл бұрын

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

  • @luimadlo
    @luimadlo2 жыл бұрын

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

  • @radaniel8911
    @radaniel89113 жыл бұрын

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

  • @jannmoreno283
    @jannmoreno2833 жыл бұрын

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

  • @AdidasJericho
    @AdidasJericho2 жыл бұрын

    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

  • @macroman20062007
    @macroman200620073 жыл бұрын

    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

  • @martinruiz1407
    @martinruiz14073 жыл бұрын

    Perfectamente bien Utilizado expression Lamda.

  • @Heimaster
    @Heimaster3 жыл бұрын

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

  • @williamdavid508
    @williamdavid5083 жыл бұрын

    excelente video, muy bueno.

  • @Icaro204
    @Icaro2042 жыл бұрын

    Diioooos, nueov suscriptor te lo haz ganado excelente material

  • @nelson3391
    @nelson33913 жыл бұрын

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

  • @Catuchee
    @Catuchee3 жыл бұрын

    gracias a tus videos ya no hago tantos espagueti XD

  • @SimaDamian
    @SimaDamian3 жыл бұрын

    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!

  • @williandavidlopezsanchez8331
    @williandavidlopezsanchez83313 жыл бұрын

    Que bonito código.

  • @romansad
    @romansad3 жыл бұрын

    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.

  • @luiseduardoquirolafrank1182
    @luiseduardoquirolafrank11823 жыл бұрын

    Excelente video Héctor. Felicitaciones!

  • @rguere
    @rguere3 жыл бұрын

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

  • @MacBoy1986
    @MacBoy19863 жыл бұрын

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

  • @marcelovargasbo
    @marcelovargasbo3 жыл бұрын

    Excelente video aula!

  • @tonym5857
    @tonym58573 жыл бұрын

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

  • @joanvillamarin233
    @joanvillamarin2333 жыл бұрын

    Excelente ejemplo 👌🏻 ¡crack !

  • @antoniohernandezhernandez6081
    @antoniohernandezhernandez60813 жыл бұрын

    Gracias hdeleon, muy bueno excelente gracias!!

  • @ccghy
    @ccghy3 жыл бұрын

    excelente, buenísimo video !

  • @luisquispe4653
    @luisquispe46533 жыл бұрын

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

  • @MrEsanabriab
    @MrEsanabriab3 жыл бұрын

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

  • @manuart1983
    @manuart19833 жыл бұрын

    Esooooooooooo Super Crackkkkkk. Muchas Gracias

  • @LuisMorales-nl5dx
    @LuisMorales-nl5dx3 жыл бұрын

    Eres un crack amigo 👌🙏🏽🙌🏾

  • @jesuspereiraoficial
    @jesuspereiraoficial3 жыл бұрын

    Eres el mejor Bro! Excelente video

  • @reinises7790
    @reinises77903 жыл бұрын

    Me encantan tus videos !!

  • @metaladdict3691
    @metaladdict36912 жыл бұрын

    Mind blown 🤟🏼

  • @enriquemoreno8444
    @enriquemoreno84443 жыл бұрын

    Excelente profesor!

  • @cesarcastano
    @cesarcastano3 жыл бұрын

    Excelente. Gracias

  • @RichardGonzalez-azb
    @RichardGonzalez-azb3 жыл бұрын

    Excelente video, Saludos.

  • @ricardovarela2638
    @ricardovarela26383 жыл бұрын

    Esta chingonsisimo este video

  • @cuatrodelimon
    @cuatrodelimon3 жыл бұрын

    Chingon este video, más vídeos asi

  • @tarralover7636
    @tarralover76363 жыл бұрын

    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!

  • @kervytmarrerorosales535
    @kervytmarrerorosales5353 жыл бұрын

    Gracias ❤️

  • @engel15496
    @engel154963 жыл бұрын

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

  • @thetradingrobots3148
    @thetradingrobots31483 жыл бұрын

    Buenisima man!

  • @lalokura1000
    @lalokura10003 жыл бұрын

    Muy Bueno

  • @MrElmarqueli
    @MrElmarqueli3 жыл бұрын

    pa genial jajajajaaajaj expectacular Hectorrrrr ajjajajaajj me encanto esto.

  • @alconlm
    @alconlm3 жыл бұрын

    Buen video 👍

  • @alfacode7299
    @alfacode72993 жыл бұрын

    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

  • @williamprogramer4168
    @williamprogramer41683 жыл бұрын

    Crack

  • @danielmendezdeveloper1748
    @danielmendezdeveloper17483 жыл бұрын

    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 жыл бұрын

    @@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 :(

  • @marcocordova5417
    @marcocordova5417 Жыл бұрын

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

  • @jcdiazgm
    @jcdiazgm3 жыл бұрын

    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 жыл бұрын

    quiza haga un video más avanzado para explicarlo

  • @oldschoolappearance7606
    @oldschoolappearance76063 жыл бұрын

    Excelente video, es de muchísima ayuda!. Tengo una consulta, es de mala práctica, utilizar valores Nullables de tipo int, bool y demás en los modelos y la lógica en general? Como int? o bool?. Saludos desde Costa Rica.

  • @deynerdejesus3689
    @deynerdejesus36893 жыл бұрын

    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?

  • @marcoscardona989
    @marcoscardona9893 жыл бұрын

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

  • @hdeleonnet

    @hdeleonnet

    3 жыл бұрын

    Si pero igual necesitas tolist

  • @angelmorales5250
    @angelmorales52503 жыл бұрын

    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?

  • @ayrtoncesarlamadridmartine306

    @ayrtoncesarlamadridmartine306

    2 жыл бұрын

    Ya no usas predicate, si no un func

  • @alexandrohdez3982
    @alexandrohdez39823 жыл бұрын

    mucha abstraccionn😂👏👏👏

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

  • @hdeleonnet

    @hdeleonnet

    3 жыл бұрын

    Voy con eso en breve

  • @ADANMENDEZjam3001490
    @ADANMENDEZjam30014903 жыл бұрын

    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 жыл бұрын

    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;} }

  • @emiliowildberger7151
    @emiliowildberger71513 жыл бұрын

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

  • @hdeleonnet

    @hdeleonnet

    3 жыл бұрын

    kzread.info/dash/bejne/pHeNqcZsj6Sqnpc.html

  • @emiliowildberger7151

    @emiliowildberger7151

    3 жыл бұрын

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

  • @christianboada95
    @christianboada95 Жыл бұрын

    Se puede usar Any en vez del Where

  • @ariel6148
    @ariel61483 жыл бұрын

    Dejen likes amigos

  • @maheza36
    @maheza363 жыл бұрын

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

  • @nestedernest
    @nestedernest3 жыл бұрын

    ¿Se puede romper el where?

  • @oh-vito
    @oh-vito Жыл бұрын

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

  • @CarlosMGomez
    @CarlosMGomez9 ай бұрын

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

  • @hdeleonnet

    @hdeleonnet

    9 ай бұрын

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

  • @josueargueta2506
    @josueargueta25063 жыл бұрын

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

  • @hdeleonnet

    @hdeleonnet

    3 жыл бұрын

    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

  • @TRG0x0
    @TRG0x03 жыл бұрын

    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() " ?

  • @hdeleonnet

    @hdeleonnet

    3 жыл бұрын

    Any si

  • @DetectiveKunKun

    @DetectiveKunKun

    2 жыл бұрын

    Eso mismo me sugirió el IDE jajaja

  • @cesarbenavides1369
    @cesarbenavides13692 жыл бұрын

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

  • @diego_solis
    @diego_solis3 жыл бұрын

    Damnnnn

  • @popularfan5893
    @popularfan58933 жыл бұрын

    Sinceramente prefiero usar if. Aunque como dices es interesante.

  • @puchotec3830
    @puchotec3830 Жыл бұрын

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

  • @centurion3708
    @centurion37083 жыл бұрын

    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

  • @hamelhmc
    @hamelhmc3 жыл бұрын

    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.

  • @chloepurple3565
    @chloepurple35653 жыл бұрын

    Por qué tienes varias versiones de visual y sql?

  • @TheMrfonchi
    @TheMrfonchi2 жыл бұрын

    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++

  • @tarralover7636
    @tarralover76363 жыл бұрын

    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 жыл бұрын

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

  • @tarralover7636

    @tarralover7636

    3 жыл бұрын

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

  • @alexanderalegre3133
    @alexanderalegre31333 жыл бұрын

    Esto es muy parecido a FluentValidation no?

  • @condorcol7816
    @condorcol78163 жыл бұрын

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

  • @hdeleonnet

    @hdeleonnet

    3 жыл бұрын

    Displays

  • @IconicSounds
    @IconicSounds3 жыл бұрын

    daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamn

  • @alexrigar
    @alexrigar3 жыл бұрын

    Que benefició tiene usar lambdas ?

  • @rodrigo6459
    @rodrigo64593 жыл бұрын

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

  • @hdeleonnet

    @hdeleonnet

    3 жыл бұрын

    Tienes razón

  • @MrElmarqueli

    @MrElmarqueli

    3 жыл бұрын

    te refieres cuando invocamos .Tolist() ?

  • @rodrigo6459

    @rodrigo6459

    3 жыл бұрын

    @@MrElmarqueli si....

  • @JoseManuelLopezHernandez
    @JoseManuelLopezHernandez3 жыл бұрын

    "¿Esponja enloqueciste?"

  • @FernandoZamudioC
    @FernandoZamudioC3 жыл бұрын

    Y yo q pensaba q sabia lamda !

  • @jorgevillordo5471
    @jorgevillordo54713 жыл бұрын

    csharpbeerrock

  • @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() }; } public class DATAvalidator { public static bool validate(T data, params Predicate[] validations) => validations.ToList().Where(d => { return !d(data); }).Count() == 0; }

  • @benja8850
    @benja88503 жыл бұрын

    no te pases. El if es la vida.

  • @NADXUS
    @NADXUS3 жыл бұрын

    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

  • @MrElmarqueli
    @MrElmarqueli3 жыл бұрын

    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.

  • @mariate9335
    @mariate933512 күн бұрын

    Se me terminó el cerebro

  • @MrElmarqueli
    @MrElmarqueli3 жыл бұрын

    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?

  • @Diego-rx2ro

    @Diego-rx2ro

    3 жыл бұрын

    Usa el Any

  • @siemprequierovolar
    @siemprequierovolar Жыл бұрын

    Ya tienen if dentro las expresiones Lambda.