image

Bootcamps ilimitados + curso de inglês para sempre

80
%OFF
Article image
Taiany Brazil
Taiany Brazil25/06/2024 17:53
Compartilhe

10 Truques de LINQ que Todo Programador C# Deve Saber

    O que são LINQ no C#?

    Imagine que você tem uma caixa cheia de brinquedos e quer encontrar os carrinhos de corrida vermelhos. LINQ (Language Integrated Query) é como um superpoder que te ajuda a procurar, organizar e brincar com os dados de um jeito fácil e rápido no C#. Ele funciona em listas, bancos de dados e até em arquivos XML!

    Quais são os métodos do LINQ?

    Os métodos LINQ são como ferramentas mágicas que te ajudam a encontrar, escolher e organizar os brinquedos na sua caixa. Vamos ver alguns deles abaixo que são super legais!

    1.Filtrando com Where O método Where é como uma peneira que filtra dados de acordo com uma condição. Por exemplo:

    //csharp
    
    var numeros = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    var numerosPares = numeros.Where(num => num % 2 == 0);
    
    // Saída: 2, 4, 6, 8, 10
    Console.WriteLine(string.Join(", ", numerosPares));
    

    2.Ordenando com OrderBy e OrderByDescending Você pode ordenar dados de forma crescente ou decrescente usando OrderBy e OrderByDescending. Exemplo:

    //csharp
    
    var numeros = new List<int> { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3 };
    var numerosOrdenados = numeros.OrderBy(num => num);
    
    // Saída: 1, 1, 2, 3, 3, 4, 5, 5, 6, 9
    Console.WriteLine(string.Join(", ", numerosOrdenados));
    

    3.Selecionando com Select O método Select serve para escolher quais propriedades ou transformações aplicar em cada elemento. Por exemplo:

    //csharp
    
    var pessoas = new List<Pessoa> { new Pessoa { Nome = "Ana", Idade = 25 }, new Pessoa { Nome = "João", Idade = 30 } };
    var nomes = pessoas.Select(pessoa => pessoa.Nome);
    
    // Saída: Ana, João
    Console.WriteLine(string.Join(", ", nomes));
    

    4.Agregando com Sum, Average, Min e Max Esses métodos são usados para calcular somas, médias, valores mínimos e máximos em uma coleção de números. Exemplo:

    //csharp
    
    var numeros = new List<int> { 1, 2, 3, 4, 5 };
    var soma = numeros.Sum();
    
    // Saída: 15
    Console.WriteLine(soma);
    

    5.Agrupando com GroupBy GroupBy ajuda a agrupar dados com base em uma chave específica. Por exemplo, agrupando pessoas por idade:

    //csharp
    
    var pessoas = new List<Pessoa> { new Pessoa { Nome = "Ana", Idade = 25 }, new Pessoa { Nome = "João", Idade = 30 } };
    var gruposDeIdade = pessoas.GroupBy(pessoa => pessoa.Idade);
    
    // Saída:
    // Key: 25, Values: Ana
    // Key: 30, Values: João
    foreach (var grupo in gruposDeIdade)
    {
      Console.WriteLine($"Key: {grupo.Key}, Values: {string.Join(", ", grupo.Select(p => p.Nome))}");
    }
    

    6.Unindo com Join Join combina dados de duas fontes diferentes com base em uma condição. Por exemplo, unindo listas de alunos e cursos:

    //csharp
    
    var alunos = new List<Aluno> { new Aluno { Nome = "Maria", CursoId = 1 }, new Aluno { Nome = "Pedro", CursoId = 2 } };
    var cursos = new List<Curso> { new Curso { Id = 1, Nome = "Matemática" }, new Curso { Id = 2, Nome = "História" } };
    var alunosECursos = alunos.Join(cursos, aluno => aluno.CursoId, curso => curso.Id, (aluno, curso) => new { aluno.Nome, curso.Nome });
    
    // Saída: { Nome = Maria, Nome = Matemática }, { Nome = Pedro, Nome = História }
    foreach (var item in alunosECursos)
    {
      Console.WriteLine($"{{ Nome = {item.Nome}, Curso = {item.Nome} }}");
    }
    

    7.Convertendo com ToList, ToDictionary e ToArray Esses métodos convertem o resultado de uma consulta LINQ em diferentes tipos de coleções. Exemplo:

    //csharp
    
    var pessoas = new List<Pessoa> { new Pessoa { Nome = "Ana" }, new Pessoa { Nome = "João" } };
    var listaDeNomes = pessoas.Select(pessoa => pessoa.Nome).ToList();
    
    // Saída: Ana, João
    Console.WriteLine(string.Join(", ", listaDeNomes));
    

    8.Excluindo Duplicatas com Distinct Distinct remove elementos duplicados de uma coleção. Por exemplo:

    //csharp
    var numeros = new List<int> { 1, 2, 2, 3, 4, 4, 5 };
    var numerosDistintos = numeros.Distinct();
    
    // Saída: 1, 2, 3, 4, 5
    Console.WriteLine(string.Join(", ", numerosDistintos));
    

    9.Verificando Condições com Any, All e Contains Esses métodos ajudam a verificar se elementos existem, se todos os elementos satisfazem uma condição ou se uma coleção contém um determinado elemento. Exemplo:

    //csharp
    
    var numeros = new List<int> { 1, 2, 3, 4, 5 };
    var temNumeroNegativo = numeros.Any(num => num < 0);
    
    // Saída: False
    Console.WriteLine(temNumeroNegativo);
    

    10.Concatenando com Concat Concat une duas sequências em uma única sequência. Por exemplo:

    //csharp
    var numeros1 = new List<int> { 1, 2, 3 };
    var numeros2 = new List<int> { 4, 5, 6 };
    var todosNumeros = numeros1.Concat(numeros2);
    
    // Saída: 1, 2, 3, 4, 5, 6
    Console.WriteLine(string.Join(", ", todosNumeros));
    

    Esses são alguns dos truques de LINQ que tornam a vida dos programadores C# muito mais fácil!

    Compartilhe
    Recomendados para você
    Microsoft 50 Anos - Prompts Inteligentes
    Microsoft 50 Anos - GitHub Copilot
    Microsoft 50 Anos - Computação em Nuvem com Azure
    Comentários (0)