IRONSOFTWAREHOME
ATUALIZAÇÕES DO DESENVOLVEDOR

Expressões Lambda em C# (Como Funciona para Desenvolvedores)

Curtis Chau
Curtis Chau
Updated: 21 de abril de 2026

No universo da programação em C#, as expressões lambda se destacam como um dos recursos mais poderosos. Essas construções concisas e expressivas permitem que os desenvolvedores escrevam código compacto, porém robusto, aprimorando a legibilidade, a facilidade de manutenção e a eficiência geral.

Neste artigo, vamos explorar em detalhes as expressões lambda em C#, analisando sua sintaxe, casos de uso, benefícios e técnicas avançadas. Também exploraremos como os recursos do IronPDF, da Iron Software, podem gerar um documento PDF dinamicamente em aplicativos C#.

Entendendo as expressões lambda

As expressões lambda, introduzidas no C# 3.0, fornecem uma maneira concisa de definir funções anônimas ou delegados. Essencialmente, são funções anônimas embutidas que podem ser usadas sempre que um tipo delegado for esperado.

A sintaxe para uma expressão lambda é:

(parameters) => expression // lambda expression syntax

Exemplo:

x => x * x // lambda expression to square a number

Aqui, parameters são os parâmetros de entrada da expressão lambda, e expression é a declaração ou bloco de declarações a serem executadas. O ambiente de execução de linguagem comum do .NET cria uma função anônima para cada expressão lambda durante o tempo de compilação.

Uso básico

Vejamos um exemplo de expressão Lambda onde temos uma lista de números inteiros e queremos filtrar os números pares.

Podemos conseguir isso usando o método List<t>.FindAll junto com uma expressão lambda:

List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
List<int> evenNumbers = numbers.FindAll(x => x % 2 == 0);

No exemplo acima, x => x % 2 == 0 é uma expressão lambda que recebe um inteiro x como um parâmetro de entrada e retorna true se x for par, e false caso contrário. A expressão do corpo lambda é executada em cada elemento da lista.

Casos de uso

O uso de expressões Lambda na programação de aplicações modernas encontra uma variedade de aplicações, incluindo:

  1. Consultas LINQ: Expressões lambda são amplamente utilizadas em LINQ (Language Integrated Query) para realizar operações de filtragem, projeção, classificação e agrupamento em coleções de dados.
  2. Tratamento de eventos: Ao trabalhar com eventos e delegados, as expressões lambda fornecem uma maneira concisa de definir manipuladores de eventos diretamente no código.
  3. Programação Assíncrona: Em padrões de programação assíncrona como Task.Run, expressões lambda podem ser usadas para definir a operação assíncrona a ser executada.
  4. Programação Funcional: As expressões lambda suportam paradigmas de programação funcional, permitindo operações como map, filter e reduce em coleções.

Tipos de expressões Lambda

Lambdas de expressão

Expressões Lambda com => são chamadas de lambdas de expressão. Eles seguem o seguinte formato:

x => x * x // expression to square a number

No exemplo acima, estamos criando o quadrado de um número. Em expressões lambda, o corpo pode incluir chamadas de método. No entanto, ao gerar árvores de expressão destinadas à avaliação fora do Common Language Runtime (CLR) do .NET , como no SQL Server, é aconselhável evitar qualquer chamada de método dentro de expressões lambda.

Isso ocorre porque os métodos podem não ter significado fora do contexto do CLR. Portanto, é crucial considerar o ambiente de destino ao construir uma árvore de expressão para garantir compatibilidade e interpretação significativa.

Lambdas de declaração

As expressões lambda permitem múltiplas instruções e fornecem operações mais complexas:

Func<int, int> mySquareDelegate = (x) =>
{
    return x * x;
};

Console.WriteLine(mySquareDelegate(4)); // Output: 16

Neste código, é declarado um delegado que opera sobre números inteiros e retorna o seu quadrado. O corpo lambda pode englobar várias declarações dentro de um bloco {}.

Técnicas Avançadas

Capturando variáveis

Expressões lambda podem capturar variáveis ​​do escopo envolvente. Essa funcionalidade, conhecida como captura de variáveis ​​ou fechamento (closure), permite que expressões lambda acessem e usem variáveis ​​declaradas fora de seu corpo:

int factor = 2;
Func<int, int> multiplier = x => x * factor;

Neste exemplo, a expressão lambda x => x * factor captura a variável factor do escopo envolvente.

Múltiplos parâmetros e instruções

Expressões lambda podem ter mais de um parâmetro e executar múltiplas instruções contidas em um bloco:

Func<int, int, int> add = (a, b) =>
{
    int result = a + b;
    Console.WriteLine($"The sum of {a} and {b} is {result}");
    return result;
};

IronPDF: Uma biblioteca de PDF da Iron Software

Explore o IronPDF , uma biblioteca versátil e de alto desempenho da Iron Software para geração e análise de PDFs, que pode ser usada para gerar documentos PDF.

O IronPDF pode ser instalado a partir do gerenciador de pacotes NuGet com o seguinte comando:

PM > Install-Package IronPdf

Ou instalado a partir do Visual Studio, conforme mostrado abaixo:

Expressões Lambda em C# (Como Funciona para Desenvolvedores): Figura 1 - Instalando IronPDF com o gerenciador de pacotes NuGet

Agora vamos explorar a geração de PDFs usando uma expressão lambda:

using IronPdf; // Import the IronPdf library
using System;
using System.Collections.Generic;
using System.Linq;

namespace IronPatterns
{
    class Program
    {
        static void Main()
        {
            Console.WriteLine("-----------Iron Software-------------");
            var renderer = new ChromePdfRenderer(); // Initialize the PDF renderer
            var content = "<h1> Iron Software is Awesome </h1> Made with IronPDF!";
            content += "<h2>Demo C# lambda expressions</h2>";
            content += $"<p>Generating Square of list of numbers x=>x*x</p>";

            List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            // Use Select to create a list of squared numbers
            List<int> squares = numbers.Select(x => x * x).ToList();

            content += $"<p>Numbers list: {string.Join(",", numbers)}</p>";
            content += $"<p>Squares: {string.Join(",", squares)}</p>";

            var pdf = renderer.RenderHtmlAsPdf(content); // Render the HTML as a PDF
            pdf.SaveAs("output.pdf"); // Save the PDF document
        }
    }
}

Saída

Expressões Lambda em C# (Como Funciona para Desenvolvedores): Figura 2

Licença de teste

O código IronPDF só pode ser executado com uma licença de avaliação obtida na página de licenças de avaliação do IronPDF . Forneça um endereço de e-mail na janela pop-up para gerar uma chave de licença e recebê-la em seu e-mail.

"IronPdf.LicenseKey": "<YourKey>"
JSON

Coloque a chave de licença no arquivo AppSettings.json.

Conclusão

As expressões lambda em C# oferecem uma maneira concisa e expressiva de definir funções embutidas, tornando o código mais legível, fácil de manter e eficiente. Elas encontram aplicações em diversos domínios, incluindo consultas LINQ, tratamento de eventos, programação assíncrona e programação funcional.

Ao dominar as expressões lambda, os desenvolvedores podem desbloquear novas dimensões de produtividade e elegância em seus códigos C#.

Seja você um desenvolvedor C# experiente ou esteja apenas começando sua jornada, entender e aproveitar o poder das expressões lambda certamente elevará suas habilidades de programação a um novo patamar.

Então, mergulhe de cabeça, experimente e abrace a beleza das expressões lambda em seus projetos C#!

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.