Article image
DOUGLAS SANTOS
DOUGLAS SANTOS21/02/2024 17:36
Compartilhe

Funções Lambda em C# - Praticidade no seu código

  • #C#

Introdução

Já ouviu falar sobre as Funções Lambda? Elas são ferramentas poderosas em C# no qual nos possibilita criar funções anônimas de maneira muito simples.

Vamos explorar neste artigo um pouco sobre essa função, vamos compreender suas bases, descobrir como e onde aplicá-las, e ver exemplos práticos e comparativos para aumentar o seu conhecimento.

Explicação sobre Funções Lambda

As Funções Lambda, ou expressões lambda, são maneiras simples de definir métodos anônimos em C#.

Elas são usadas para tornar o código mais eficiente e fácil de ler, principalmente em situações onde escrever métodos tradicionais seria um pouco mais complicado de fazer.

Simplificando, uma função lambda é definida usando o operador => (seta) e pode ter zero ou mais parâmetros.

Basicamente, sua estrutura é assim:

(parametros) => expressao 

Como e Onde Usar Funções Lambda:

As Funções Lambda têm aplicações em diversas situações, destacando-se em:

1 - Delegados e Eventos:

  • Substituição simples de delegados tradicionais.
  • Exemplo:
Action<int> minhaAcao = x => Console.WriteLine(x); 
"Delegado" em C# é um tipo de dado que representa referências a métodos com uma assinatura específica. Delegados são frequentemente utilizados para implementar callbacks, manipular eventos e facilitar a comunicação entre objetos.

2 - LINQ (Language Integrated Query):

  • Facilitando a criação de expressões LINQ.
  • Exemplo:
var numerosPares = numeros.Where(n => n % 2 == 0); 

3 - Tarefas Assíncronas:

  • Simplificando expressões assíncronas.
  • Exemplo:
Task.Run(() => Console.WriteLine("Execução assíncrona.")); 

Exemplos Práticos e Comparativos

Vamos ilustrar a aplicação das Funções Lambda em um cenário prático, e vamos compará-las com as abordagens tradicionais.

1 - Ordenação de Lista:

  • Abordagem Tradicional
  lista.Sort((x, y) => x.CompareTo(y)); 

Nesta abordagem, a função Sort é utilizada com um comparador personalizado, onde a função lambda (x, y) => x.CompareTo(y) define a lógica de comparação entre os elementos da lista.

Isso permite uma ordenação personalizada com base no retorno da comparação.

  • Utilizando Função Lambda
  lista.Sort(); 

Ao utilizar a função lambda, a função Sort é chamada sem nenhum argumento.

Nesse caso, a ordenação padrão é aplicada, o que significa que a ordenação é feita com base na implementação padrão de comparação dos elementos na classe. Ou seja, se a classe dos elementos implementa a interface IComparable, ela determinará a lógica de comparação.

2 - Filtragem de Números Pares

  • Abordagem Tradicional
   var pares = numeros.Where(IsPar); 

Nesta abordagem, a função Where é utilizada para filtrar elementos da coleção "numeros". A condição de filtragem é fornecida pela função IsPar.

Podemos presumir que essa função, IsPar, é uma função separada definida anteriormente no código ou um método que retorna verdadeiro se o número for par e falso caso contrário.

Exemplo:

bool IsPar(int numero)
{
return numero % 2 == 0;
}
  • Utilizando Função Lambda:
   var pares = numeros.Where(x => x % 2 == 0); 

Quando utilizamos a função lambda, a expressão "x => x % 2 == 0" é diretamente fornecida como a condição de filtragem para a função Where.

Vemos aqui que essa expressão realiza a mesma tarefa que a função IsPar, ou seja, ela verifica se um número é par. No outro cenário, a lógica da expressão lambda é mais concisa e é avaliada para cada elemento na coleção, filtrando apenas os números pares.

Conclusão

As Funções Lambda são uma adição valiosa ao conjunto de ferramentas de um desenvolvedor C#. Sua capacidade de tornar o código mais claro, aliada à sua aplicação em diversos contextos, a torna uma escolha poderosa!

Ao dominar seu uso e entender onde aplicá-las, você estará deixando de ser um Padawan e tornando-se um Jedi, elevando sua programação para um novo patamar.

Experimente e explore o potencial das Funções Lambda em seus projetos!

Para saber mais, veja a documentação no site da Microsoft

Compartilhe
Comentários (0)