|
| 1 | +--- |
| 2 | +title: 'Aprender a programar em C# – Parte 5' |
| 3 | +date: Thu, 18 Sep 2024 19:30:00 +0000 |
| 4 | +draft: false |
| 5 | +tags: ['Aprender a programar em C#', 'C Sharp', 'C#','linq', 'lambda', 'Conceitos básicos', 'Iniciante', 'Visual Studio'] |
| 6 | +--- |
| 7 | +Na continuidade da nossa série sobre programação em C#, chegamos a um tema muito relevante e atual: LINQ (Language Integrated Query) e Expressões Lambda. Esses conceitos são fundamentais para quem deseja trabalhar com manipulação de dados de forma eficiente e expressiva. Neste artigo, vamos explorar o que são, como funcionam e como podemos utilizá-los em nossos projetos. |
| 8 | + |
| 9 | +## 1. O que é LINQ? |
| 10 | + |
| 11 | +LINQ é uma poderosa ferramenta que permite realizar consultas em coleções de dados de forma semelhante a consultas SQL, mas diretamente em C#. Com LINQ, você pode trabalhar com arrays, listas, bancos de dados e XML, entre outros, utilizando uma sintaxe clara e concisa. |
| 12 | + |
| 13 | +### 1.1. Tipos de LINQ |
| 14 | + |
| 15 | +Existem diferentes tipos de LINQ que podemos utilizar: |
| 16 | + |
| 17 | +- **LINQ to Objects**: Permite realizar consultas em coleções em memória, como arrays e listas. |
| 18 | +- **LINQ to SQL**: Permite realizar consultas em bancos de dados SQL Server. |
| 19 | +- **LINQ to XML**: Permite realizar consultas em documentos XML. |
| 20 | + |
| 21 | +## 2. Sintaxe do LINQ |
| 22 | + |
| 23 | +A sintaxe do LINQ pode ser dividida em duas abordagens: **Sintaxe de Consulta** e **Sintaxe de Método**. |
| 24 | + |
| 25 | +### 2.1. Sintaxe de Consulta |
| 26 | + |
| 27 | +A sintaxe de consulta é semelhante à SQL e é bastante intuitiva. Veja um exemplo: |
| 28 | + |
| 29 | +```csharp |
| 30 | +using System; |
| 31 | +using System.Collections.Generic; |
| 32 | +using System.Linq; |
| 33 | + |
| 34 | +class Program |
| 35 | +{ |
| 36 | + static void Main() |
| 37 | + { |
| 38 | + List<int> numeros = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; |
| 39 | + var pares = from n in numeros |
| 40 | + where n % 2 == 0 |
| 41 | + select n; |
| 42 | + Console.WriteLine("Números pares:"); |
| 43 | + foreach (var numero in pares) |
| 44 | + { |
| 45 | + Console.WriteLine(numero); |
| 46 | + } |
| 47 | + } |
| 48 | +} |
| 49 | +``` |
| 50 | + |
| 51 | +### 2.2. Sintaxe de Método |
| 52 | + |
| 53 | +A sintaxe de método utiliza métodos de extensão e é mais comum em cenários onde você precisa de operações mais complexas. Veja o mesmo exemplo utilizando a sintaxe de método: |
| 54 | + |
| 55 | +```csharp |
| 56 | +using System; |
| 57 | +using System.Collections.Generic; |
| 58 | +using System.Linq; |
| 59 | + |
| 60 | +class Program |
| 61 | +{ |
| 62 | + static void Main() |
| 63 | + { |
| 64 | + List<int> numeros = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; |
| 65 | + var pares = numeros.Where(n => n % 2 == 0); |
| 66 | + Console.WriteLine("Números pares:"); |
| 67 | + foreach (var numero in pares) |
| 68 | + { |
| 69 | + Console.WriteLine(numero); |
| 70 | + } |
| 71 | + } |
| 72 | +} |
| 73 | +``` |
| 74 | + |
| 75 | +## 3. O que são Expressões Lambda? |
| 76 | + |
| 77 | +Expressões Lambda são uma forma concisa de representar métodos anônimos. Elas são frequentemente usadas em LINQ para definir critérios de seleção, filtragem e transformação de dados. |
| 78 | + |
| 79 | +### 3.1. Sintaxe de Expressões Lambda |
| 80 | + |
| 81 | +A sintaxe básica de uma expressão lambda é: |
| 82 | + |
| 83 | +```csharp |
| 84 | +(parameters) => expression |
| 85 | +``` |
| 86 | + |
| 87 | +Por exemplo, a expressão lambda `n => n % 2 == 0` recebe um parâmetro `n` e retorna um valor booleano indicando se `n` é par. |
| 88 | + |
| 89 | +## 4. Usando LINQ e Expressões Lambda Juntos |
| 90 | + |
| 91 | +Uma das grandes vantagens de LINQ é que ele permite o uso de expressões lambda para realizar operações de forma mais flexível. Veja um exemplo onde utilizamos LINQ com expressões lambda para filtrar e ordenar uma lista de objetos: |
| 92 | + |
| 93 | +```csharp |
| 94 | +using System; |
| 95 | +using System.Collections.Generic; |
| 96 | +using System.Linq; |
| 97 | +class Pessoa |
| 98 | +{ |
| 99 | + public string Nome { get; set; } |
| 100 | + public int Idade { get; set; } |
| 101 | +} |
| 102 | + |
| 103 | +class Program |
| 104 | +{ |
| 105 | + static void Main() |
| 106 | + { |
| 107 | + List<Pessoa> pessoas = new List<Pessoa> |
| 108 | + { |
| 109 | + new Pessoa { Nome = "Ana", Idade = 25 }, |
| 110 | + new Pessoa { Nome = "João", Idade = 30 }, |
| 111 | + new Pessoa { Nome = "Maria", Idade = 22 }, |
| 112 | + new Pessoa { Nome = "Pedro", Idade = 35 } |
| 113 | + }; |
| 114 | + |
| 115 | + var pessoasFiltradas = pessoas |
| 116 | + .Where(p => p.Idade > 25) |
| 117 | + .OrderBy(p => p.Nome); |
| 118 | + |
| 119 | + Console.WriteLine("Pessoas com mais de 25 anos:"); |
| 120 | + |
| 121 | + foreach (var pessoa in pessoasFiltradas) |
| 122 | + { |
| 123 | + Console.WriteLine($"{pessoa.Nome}, {pessoa.Idade} anos"); |
| 124 | + } |
| 125 | + } |
| 126 | +} |
| 127 | +``` |
| 128 | + |
| 129 | +## 5. Conclusão |
| 130 | + |
| 131 | +Neste artigo, introduzimos o LINQ e as expressões lambda, mostrando como essas ferramentas podem facilitar a manipulação de dados em C#. Com a prática, você poderá aplicar esses conceitos em seus projetos, tornando seu código mais limpo e eficiente. |
| 132 | + |
| 133 | +No próximo artigo, continuaremos a explorar mais recursos do C# e como utilizá-los em aplicações do mundo real. Até lá, bons estudos e mãos à obra! |
| 134 | + |
| 135 | +--- |
| 136 | + |
| 137 | +**Referências:** |
| 138 | + |
| 139 | +- Documentação oficial do [LINQ](https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/) |
| 140 | +- Exemplos de [Expressões Lambda](https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/lambda-expressions) |
0 commit comments