Balta, já vi em algumas publicações no LinkedIn e em outros blogs, de pessoas falando que o Exists é mais performático do que o Any. Quando usar um e quando usar outro?
Ei Balta, poderia me dar uma ajuda em um conceito do .NET. Se possível poderia me explicar como funciona o JIT e o AOT, mais especificamente quanto a parte de como funciona, por exemplo: sei que o código é compilado inicialmente para uma IL só que o que acontece depois nos dois casos isso eu não entendi direito. Desde já agradeço, ótimo vídeo!
Muito bom! Confesso que não consegui visualizar a utilização do single tomando esse exemplo da lista de frutas..rs mas valeu pela dica!
7 месяцев назад+1
Basicamente o Single é utilizado para garantir que na sua consulta seja obrigatório vir apenas um registro. Imagina buscar um nome pelo CPF: sendo o CPF um dado obrigatório, teria apenas o retorno de um registro. Nesse caso, o First não seria o ideal, já que se houver mais que uma pessoa cadastrada no seu banco com aquele CPF, você traria talvez um dado que não é verdade. O Single é indicado neste caso. Inclusive para que seja feito o tratamento deste erro. Espero que tenha ajudado.
Balta, blz? apesar de conhecê-los bem. Não conhecia 2 coisas que você apresentou: 1-Mostrar as imagens diretamente na lista; 2-Usar o formato "2..3" (2 pontos seguidos como ranger). Obrigado pelas dicas. Parabéns!
Mais uma vez, um conteúdo bastante útil. Obrigado por compartilhar. 15:50 fiquei bastante curioso para saber um caso prático em que faça sentido usar o .Single(). 🙂
Um exemplo hipotético seria na autenticação de um usuário: na hora de buscar o usuário pelo e-mail, não pode pode retornar mais de 1 registro. O .Single() se encaixa perfeitamente neste cenário. Se retornar, significa que não foi criado uma chave única no banco para este campo, por exemplo.
@@bruno.n.fernandes mas neste caso, se um .Single() retornasse mais de um registro para o e-mail pesquisado, seria uma falha de banco com chave duplicada/corrompida. Ou no caso de um banco sem chave (?), indicaria uma falha de validação no sistema que persistiu o registro do usuário em duplicidade. Neste caso, o uso do Single() só estaria escondendo um problema, mas não o resolvendo. Com certeza há alguma utilidade para este método, mas ainda não encontrei. Se você tem certeza que só existe um único elemento em uma lista, você usa o First(), que será até mais rápido, pois não precisará iterar sobre toda a lista, mesmo após encontrar o item pesquisado. Se não tem certeza de que o item é único, não vejo sentido de testar isso usando o Single() e fazer uma validação cara baseada em um lançamento de exceção.
Balta, eu gostaria de lhe sugerir um tema para um video futuro talvez. O contexto é o seguinte: Já vi por diversas vezes você utilizando IEnumerable, porém eu nunca cheguei ao ponto de sentir a necessidade de utilizar. Pode ser que eu não tenha entendido o real benefício disto, mas eu sempre declaro um model, adiciono elementos e utilizo-o substituindo o IEnumerable que ao meu ponto de vista parece ser melhor. Talvez você em algum momento consiga "encaixar" algo a respeito e sanar esta minha dúvida. Obrigado
Novamente Balta contribuindo conosco! Mas Balta uma Duvida! É melhor usar o FOREACH da maneira que vc utilizou, OU partir da nova lista criada. Exemplo !!! fruits.Take(2..4).ToList().ForEach(x => Console.WriteLine(x)); Só a respeito de performance, a duvida !! Desde já obrigado!!
Até pouco tempo tinha a mesma dúvida, mas fui pesquisar o ForEach em LINQ e descobrir que por debaixo dos panos ele usa o próprio FOREACH!! Então acaba que os dois da no mesmo, entra a questão do Clen Code, o que e mais fácil de ler!!
A diretiva where().where() acumulado pode não funcionar. Porque no primeiro "Where", se voce pesquisa poe x => x == "banana" ele vai retonar só a banana como se fosse uma nova lista, quando o segundo where for execurado procurando, por exemplo, a cereja, ela não está mais na lista, porque a nova lista só tem a banana.
Acredito q dependa do q vc colocar dps desse segundo where. No seu exemplo, se vc colocar um .FirstorDefault(), retornaria null. Claro q é melhor usar o operador &&, mas se vc usasse o where aninhado para a lista ["Banana prata", Banana Maçã", "Banana Maçã Anã", "Maçã"] No primeiro where vc pode pesquisar por banana, dps por maçã , aí retornaria os dois itens e não retornaria "maçã". ( Usando o contains())
Minha maior surpresa foi ver que pode usar fruta de verdade rs
hahahahahah 🚀
E msm sendo de verdade elas não estragam
Muito bom o vídeo Balta! Seria ótimo um vídeo falando sobre as diferenças entre IEnumerable, IList e ICollection. Fica a dica ai! :)
🚀🚀🚀🚀
Me sinto realmente em casa com sintaxe declarativa, inclusive pra definir interface...
19:09 isso aqui é poesia 💕
🚀🚀🚀
muito bom! não conhecia o take com range e o single. o single é bem restrito, mas o take vou começar a usar.
🚀
Massa demais!
Balta entrando no shape!
Em 2024, 45 cm de braço pra todo mundo da stack .net!
Boraaa!!! BIRRRLLLLLLL
Excelente
🚀🚀🚀
Balta, já vi em algumas publicações no LinkedIn e em outros blogs, de pessoas falando que o Exists é mais performático do que o Any. Quando usar um e quando usar outro?
É sim! Já está na lista pra fazer um vídeo falando só sobre eles 🚀🚀🚀🚀
Ei Balta, poderia me dar uma ajuda em um conceito do .NET. Se possível poderia me explicar como funciona o JIT e o AOT, mais especificamente quanto a parte de como funciona, por exemplo: sei que o código é compilado inicialmente para uma IL só que o que acontece depois nos dois casos isso eu não entendi direito. Desde já agradeço, ótimo vídeo!
Claro, vou preparar um vídeo! 🚀🚀
@@baltaioOk, muito obrigado, Professor!
Muito bom essa explicação sobre o Linq, pra mim é tema a ser estudo parabéns Balta.
🚀🚀
Já conhecia o linq e utilizo diariamente na minha aplicação! É um excelente recurso
🚀🚀🚀🚀
que aula perfeita, isso eu uso demais no trabalho
🚀
Eu costumo usar o container
fruits.Where(x => new string[]{ 🍒,🥥}.Contains(x))
Show!!!
Muito bom!
Confesso que não consegui visualizar a utilização do single tomando esse exemplo da lista de frutas..rs mas valeu pela dica!
Basicamente o Single é utilizado para garantir que na sua consulta seja obrigatório vir apenas um registro. Imagina buscar um nome pelo CPF: sendo o CPF um dado obrigatório, teria apenas o retorno de um registro. Nesse caso, o First não seria o ideal, já que se houver mais que uma pessoa cadastrada no seu banco com aquele CPF, você traria talvez um dado que não é verdade. O Single é indicado neste caso. Inclusive para que seja feito o tratamento deste erro.
Espero que tenha ajudado.
@
Então, neste caso o single é mais performatico que o where?!
Seria isso?
@@rogeriobassani5041 Seria. Já que o where seria mais uma clausula. Ele explica até outros exemplos no vídeo.
Ele basicamente garante (e retorna) que tem um e somente um item na lista que atende aos critérios que informou 🚀
@@baltaio
@JoaoOctavioAguilar
Blz, compreendido! Vwl!!
Mais uma aula top, sem enrolação e com conteudo muito bom, vlw professor
🚀🚀🚀
a possibilidade de usar lambdas nos métodos LINQ é bom demais
pra eu que venho do js, esse aroma funcional cativa demais
🚀🚀
Toop! Já usei mto skip take pra paginar, n sabia que dava pra fazer a paginação só no take,, valeu pela dica Mestre Balta! 😁✌
🚀🚀🚀🚀
Muito bom 👏🏽, uso bastante o Select também
Boa 🚀
Que aula incrível!!!
🚀🚀🚀🚀
Show Balta! obrigado pelo conteúdo!
🚀🚀🚀🚀
Boa balta, conteúdo top demais.
🚀🚀🚀
Balta, blz? apesar de conhecê-los bem. Não conhecia 2 coisas que você apresentou: 1-Mostrar as imagens diretamente na lista; 2-Usar o formato "2..3" (2 pontos seguidos como ranger). Obrigado pelas dicas. Parabéns!
🚀🚀🚀
Mais uma vez, um conteúdo bastante útil. Obrigado por compartilhar.
15:50 fiquei bastante curioso para saber um caso prático em que faça sentido usar o .Single(). 🙂
Um exemplo hipotético seria na autenticação de um usuário: na hora de buscar o usuário pelo e-mail, não pode pode retornar mais de 1 registro. O .Single() se encaixa perfeitamente neste cenário. Se retornar, significa que não foi criado uma chave única no banco para este campo, por exemplo.
🚀
@@bruno.n.fernandes mas neste caso, se um .Single() retornasse mais de um registro para o e-mail pesquisado, seria uma falha de banco com chave duplicada/corrompida. Ou no caso de um banco sem chave (?), indicaria uma falha de validação no sistema que persistiu o registro do usuário em duplicidade. Neste caso, o uso do Single() só estaria escondendo um problema, mas não o resolvendo.
Com certeza há alguma utilidade para este método, mas ainda não encontrei.
Se você tem certeza que só existe um único elemento em uma lista, você usa o First(), que será até mais rápido, pois não precisará iterar sobre toda a lista, mesmo após encontrar o item pesquisado. Se não tem certeza de que o item é único, não vejo sentido de testar isso usando o Single() e fazer uma validação cara baseada em um lançamento de exceção.
Show, muito bom. Legal o Take, eu nem sabia daquele range. Parece que o Exist é mais performático que o Any? Vi algum benchmark.
Sim! Tem um vídeo aqui no canal sobre isto!
Balta, video muito top!!!
Obrigado!
🚀🚀🚀
Que excelente aula!! Curti o uso dos emojis! Os métodos .Join e .OfType seriam bem interessantes tbm.
🚀🚀🚀
Excelente aula Balta!
🚀🚀🚀
Ótima didática
🚀
você é top demais!
🚀🚀🚀
Fala balta, hoje existe um método novo no Linq para verificar se um elemento existe, é o Exists que é muito mais rápido que o Any()
Exatamente, vou fazer um vídeo explicando a diferença entre os dois! 🚀
Braboo, 🚀
🚀🚀🚀🚀
Balta, eu gostaria de lhe sugerir um tema para um video futuro talvez.
O contexto é o seguinte: Já vi por diversas vezes você utilizando IEnumerable, porém eu nunca cheguei ao ponto de sentir a necessidade de utilizar. Pode ser que eu não tenha entendido o real benefício disto, mas eu sempre declaro um model, adiciono elementos e utilizo-o substituindo o IEnumerable que ao meu ponto de vista parece ser melhor. Talvez você em algum momento consiga "encaixar" algo a respeito e sanar esta minha dúvida.
Obrigado
Eu explico isto na parte de listas do curso de Orientação a Objetos do balta! 🚀
@@baltaio joia, obrigado
Show Balta, só queria um curso sobre o LINQ como consultas, etc... Show
Opaaa!!! Vamos!!! 🚀🚀🚀
Novamente Balta contribuindo conosco! Mas Balta uma Duvida!
É melhor usar o FOREACH da maneira que vc utilizou, OU partir da nova lista criada. Exemplo !!!
fruits.Take(2..4).ToList().ForEach(x => Console.WriteLine(x));
Só a respeito de performance, a duvida !!
Desde já obrigado!!
Até pouco tempo tinha a mesma dúvida, mas fui pesquisar o ForEach em LINQ e descobrir que por debaixo dos panos ele usa o próprio FOREACH!! Então acaba que os dois da no mesmo, entra a questão do Clen Code, o que e mais fácil de ler!!
@@sr.mendes7586 valeu ai!!!
Obrigado!!
Preciso fazer um bench pra ver, mas acredito que ambos casos resultem na mesma!!
Conteudo Top.
🚀
Conteúdo top!
🚀
Muito bom.
🚀
Muito bom o seu conteúdo!
Será que você poderia trazer mais vídeos de API com dotnet, principalmente com o dotnet 8? 🙃
Claro! Já temos cursos e vários vídeos aqui... mas nunca é demais 🚀
@balta, como VC vez para usar os símbolos das frutas em vez das letras?
Win + "."
Eu não conhecia o All, ElementAt, Take, range operator e o skip
🚀🚀🚀
👌
🚀🚀🚀🚀
O que você pode dizer sobre a Linguagem Scala...
Nunca utilizei 🚀
muito bom
🚀
Vi no linkedin o pessoal comentando sobre o Exist no lugar do Any e TrueForAll no lugar do All, por ser mais performatico, oque acha?
O Exists é mais performático que o Any, vou gravar sobre isso... o TrueForAll não testei! 🚀
O item 3, nesse caso para verificar se todos tem idade maior que 18, ele é mais eficiente que fazer um where.ToList() ?
Não sei se entendi a implementação que sugeriu, mas para verificar todos os itens, o All é o mais recomendado! 🚀
Krll, Realmente ê o balta. Passa o contato dá nutricionista ae, André.
hahahahah 🚀
toppp
🚀🚀🚀
ótimas aulas como sempre mas esse tema branco me mata kkkkkkkkkkkkk, fico lacrimejando o video todo mas não deixo de assistir
🚀🚀🚀🚀
👏👏👏
🚀🚀🚀
Imagino que usar o Count() seja mais lento q o Count. Pois somente o Count não executa nenhum método e vc acessa diretamente uma propriedade
Boaaaaa 🚀
Qual a diferença entre usar list.ElementAt(0) e list[0]?
ElementAt é um método do Enumerable e List[0] é para obter um item de um array (Tipo primitivo). 🚀
A diretiva where().where() acumulado pode não funcionar. Porque no primeiro "Where", se voce pesquisa poe x => x == "banana" ele vai retonar só a banana como se fosse uma nova lista, quando o segundo where for execurado procurando, por exemplo, a cereja, ela não está mais na lista, porque a nova lista só tem a banana.
Neste caso pode não funcionar, mas se o predicado puder retornar mais de um resultado, funciona sim! Mas de qualquer forma, bom evitar!
Acredito q dependa do q vc colocar dps desse segundo where. No seu exemplo, se vc colocar um .FirstorDefault(), retornaria null.
Claro q é melhor usar o operador &&, mas se vc usasse o where aninhado para a lista ["Banana prata", Banana Maçã", "Banana Maçã Anã", "Maçã"]
No primeiro where vc pode pesquisar por banana, dps por maçã , aí retornaria os dois itens e não retornaria "maçã". ( Usando o contains())
Mestre dos magos do c#, sabe mt
A careca eu já tenho 😅
Que IDE é essa?
Rider 🚀🚀🚀
É o mago do c# 🔥
🚀