Apreendendo a usar Lambda Expression em C# — Guia Rápido

Daniel Jesus
Bee Lab Academy
Published in
4 min readJan 19, 2020

Caso você tenha dúvidas sobre Lambda Expression, não precise ficar com medo, pois esse artigo irei explicar de forma simples de como implementar e também em que momento é ideal usarmos no nosso código que estamos desenvolvendo. Portanto vamos lá entender sobre esse assunto meu pequeno padwan!

O que é Lambda Expression?

Uma expressão Lambda é uma função anônima que você pode usar para criar delegados ou tipos de árvore de expressão. Ao usar expressões lambda, você pode escrever funções locais que podem ser passadas como argumentos ou retornadas como o valor de chamadas de função. Expressões lambda podem ser escritas com uma única ou várias linhas. Eles podem ser atribuídos a variáveis ​​ou em linha. O LINQ, um dos meus recursos favoritos em C #, usa a expressão lambda. Neste caso irei fornecer um código de exemplo em C#.

Expressão de linha única

Digamos que no meio de um método eu precisei colocar um número ao quadrado. Sim, eu sei que existem bibliotecas de matemática para fazer todo tipo de coisa, mas, por uma questão de explicação, digamos que não havia nenhuma. Neste caso, irei escrever uma lambda express simples para fazer isso por mim e usá-lo sempre que necessário. O código ficaria assim:

A palavra-chave Func é usada em C # para indicar uma definição de método. Os tipos de dados entre <> indicam o (s) parâmetro (s) da função e o tipo de retorno. O quadrado é o nome da variável de função, num o parâmetro e num * num é a expressão real que está sendo avaliada e retornada. => é o operador lambda. A expressão lambda acima é equivalente a esse método.

Você pode chamá-lo como faria com um método:

Digamos que você tenha uma lista de números e precise enquadrar cada valor e retornar uma nova coleção com esses valores. Eu posso usar o Linq e passar na expressão lambda “quadrado” que criei acima para fazer isso. O código ficaria assim:

Você também pode realizar a mesma coisa com uma expressão lambda embutida, o que significa apenas que não há nome de variável. O código ficaria assim:

Expressão de várias linhas

Digamos que preciso imprimir um valor inteiro, esquadrá-lo, imprimi-lo novamente e adicioná-lo a uma nova coleção com o valor ao quadrado. Eventualmente, estou repetindo o cenário acima, exceto que agora preciso imprimir o valor antes e depois. Ainda posso usar uma expressão lambda para fazer isso, no entanto, várias instruções serão necessárias. A sintaxe será um pouco diferente, porque agora preciso anexar essas instruções em um {}. O nome que você usa no corpo da expressão não importa, mas é uma boa ideia usar nomes intuitivos se você estiver fazendo algo complexo para ajudá-lo na hora da depuração.

Ou você pode usar uma expressão lambda embutida.

Esses dois trechos realizam as mesmas coisas. Se você planeja usar uma expressão mais de duas vezes, uma expressão variável seria uma boa ideia para evitar DRY (não se repita).

Eu só observei expressões lambda de parâmetro único, mas elas também podem ter vários parâmetros. Por exemplo, se você quiser escrever uma expressão que adicione três números inteiros e retorne o total, ela poderá ser escrita da seguinte maneira.

Conclusão:

Concluímos o assunto e esperamos que com isso você tenha uma base sobre o expressão lambda que se parece muito com um delegate. Claro que há muito mais conteúdo, mas com essa base você terá entendido a ideia principal e se aprofundar nesse assunto.

Fontes:

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/lambda-expressions

--

--

Daniel Jesus
Bee Lab Academy

Sênior Software Engineer, Technical Writer and Speaker, Microsoft Certified Professional