C# LINQ

LINQ significa LanguageIN tegrated Query . LINQ integra as consultas diretamente em C# através de um conjunto de extensões para a linguagem. LINQ permite escrever código declarativo e expressivo que manipula dados de forma eficiente.

Este tutorial C# LINQ ajuda você a dominar o LINQ e levar sua habilidade de manipulação de dados para o próximo nível.

O que você aprenderá:

  • Aprenda os fundamentos do LINQ e como construir consultas LINQ.
  • Explore o LINQ to Objects que ajuda você a consultar estruturas de dados na memória, como matrizes e listas.
  • Mergulhe em tópicos avançados de LINQ, como LINQ paralelo.

Ao final desta série de tutoriais, você será capaz de:

  • Escreva consultas LINQ para selecionar, filtrar, classificar e agrupar dados de diversas fontes.
  • Use LINQ para transformar dados em diferentes formatos, como XML ou JSON.
  • Otimize consultas LINQ para desempenho e eficiência.
  • Aplique o LINQ aos seus projetos para resolver problemas reais de manipulação de dados.

Seção 1. Noções básicas de C# LINQ

Os conceitos básicos do LINQ ajudam você a entender os fundamentos do LINQ que permitem escrever código mais expressivo e eficiente para manipulação de dados.

  • O que é LINQ – apresenta o LINQ, como ele funciona e por que você deve usá-lo.
  • IEnumerable<T> – aprende sobre a interface IEnumerable<T>.

Seção 2. Seleção de elementos

Esta seção mostra como usar o método Select() para selecionar elementos de uma sequência.

  • Select() – mostra como usar o método Select() para projetar cada elemento de uma sequência em um novo formato.
  • SelectMany() – aprende como usar o método SelectMany() para transformar cada item de uma sequência em uma nova sequência e nivelar as sequências em uma única sequência.

Seção 3. Ordenação de elementos

Esta seção mostra como usar vários métodos de extensão LINQ para classificar elementos de uma sequência por uma ou mais chaves em ordem crescente ou decrescente.

  • OrderBy() – classifica os elementos de uma sequência por uma chave em ordem crescente.
  • OrderByDescendente() – classifica os elementos de uma sequência em ordem decrescente.
  • ThenBy() – classifica os elementos de uma sequência em ordem crescente por uma chave secundária, após a sequência ter sido classificada pela chave primária.
  • ThenByDescendente() – classifica os elementos de uma sequência em ordem decrescente por uma chave secundária, após a sequência ter sido classificada pela chave primária.

Seção 4. Elementos de filtragem

Esta seção mostra como filtrar elementos de uma sequência com base em uma condição.

  • Where() – mostra como filtrar elementos de uma sequência com base em uma condição especificada.

Seção 5. Selecionando um único elemento

Esta seção apresenta os métodos de extensão para selecionar um único elemento de uma sequência.

  • First() – retorna o primeiro elemento em uma sequência que satisfaz uma condição.
  • Last() – retorna o último elemento de uma sequência que satisfaz uma condição.
  • Single() – retorna o único elemento de uma sequência que satisfaz uma condição.

Seção 6. Seleção de elementos específicos

Esta seção apresenta os métodos de extensão para selecionar elementos específicos de uma sequência.

  • Distinct() – recupera elementos únicos de uma sequência.
  • DistinctBy() – aprenda como recuperar elementos exclusivos de uma sequência com base em uma função de seletor de chave especificada.
  • Take() – recupera um número especificado de elementos do início de uma sequência.
  • TakeWhile() – recupera elementos de uma sequência desde que uma condição seja verdadeira e ignora os elementos restantes.
  • TakeLast() – recupera os últimos N elementos de uma sequência.
  • Skip() – pula um número especificado de elementos e retorna os elementos restantes em uma sequência.
  • SkipWhile() – ignora elementos até que uma condição seja verdadeira e retorna os elementos restantes de uma sequência.
  • SkipLast() – pula os últimos N elementos do final da sequência e retorna os elementos restantes após pular.
  • Chunk() – divide uma sequência de elementos em pedaços com um número máximo de elementos.

Seção 7. Verificando se um elemento está contido em uma sequência

Esta seção mostra como verificar se um elemento está contido em uma sequência.

  • Any() – mostra como usar o método Any() para testar se algum elemento em uma sequência satisfaz uma condição especificada.
  • All() – orienta você sobre como usar o método All() para testar se todos os elementos em uma sequência satisfazem uma condição.
  • Contém() – retorna verdadeiro se uma sequência contém um elemento ou falso caso contrário.

Seção 8. Agrupamento de dados

Esta seção mostra como agrupar elementos em grupos.

  • GroupBy() – agrupa elementos de uma sequência em grupos especificados por uma chave.

Seção 9. Agregando dados

Esta seção mostra como agregar dados de uma sequência de elementos usando vários métodos de extensão.

  • Count() – aprende como usar o método Count() para obter o número de elementos em uma sequência que satisfaz uma condição.
  • Average() – mostra como usar o método Average() para calcular a média dos números de uma sequência.
  • Sum() – aprende como usar o método Sum() para calcular a soma dos números de uma sequência.
  • Min() – encontra a sequência de números de menor valor.
  • Minby() – retorna um elemento com o menor valor de chave especificado por uma função seletora de chave.
  • Max() – encontra o valor mais alto em uma sequência de números.
  • MaxBy() – retorna um elemento com o valor de chave mais alto especificado por uma função seletora de chave.
  • Aggregate() – realiza uma operação nos elementos de uma sequência, levando em consideração o resultado da operação anterior.

Seção 10. Iterando elementos

Esta seção mostra como iterar elementos de uma sequência usando vários métodos de extensão.

  • ForEach() – mostra como usar o método ForEach() para executar uma ação em cada elemento de uma sequência.

Seção 11. Unindo sequências

Esta seção mostra como combinar duas sequências unindo-as usando uma ou mais chaves.

  • Inner Join – aprende como realizar uma junção interna de uma sequência de elementos com outra baseada em uma ou mais chaves.

Seção 12. Definir operações

Esta seção ensina como aplicar operações de conjunto, como exceção, intersecção e união a sequências.

  • SequenceEqual – mostra como comparar duas sequências se elas tiverem os mesmos elementos na mesma ordem.
  • Union() – orienta você sobre como usar o método Union() para criar um conjunto de união de duas sequências.
  • UnionBy() – mostra como usar o método Union() para criar um conjunto de união de duas sequências com base em uma função de seletor de chave.
  • Except() – aprende como recuperar elementos de uma sequência que não representa outra sequência.
  • ExceptBy() – mostra como recuperar os elementos da primeira sequência que não aparecem na segunda sequência comparando os elementos usando uma chave.
  • Intersect() – orienta você sobre como encontrar os elementos comuns de duas sequências.
  • IntersectBy() – mostra como encontrar a interseção de duas sequências com base em uma função seletora de chave.

Seção 13. Faixa, repetição e reversão

  • Range() – mostra como gerar uma sequência de inteiros.
  • Reverse() – orienta você sobre como usar o método Reverse() para gerar uma sequência de elementos na ordem inversa.
  • Repeat() – aprende como gerar uma sequência que repete um elemento N vezes.

Seção 14. LINQ paralelo e IAsyncEnumerable<T>

Parallel LINQ (PLINQ) estende o LINQ, que permite o processamento paralelo de dados. O PLINQ permite otimizar consultas LINQ distribuindo automaticamente as tarefas de processamento de dados entre vários núcleos de CPU, o que ajuda a melhorar o desempenho ao processar grandes conjuntos de dados.

  • AsParallel() – mostra como executar consultas LINQ em paralelo.
  • IAsyncEnumerable<T> – aprenda como usar IAsyncEnumerable<T> para iterar em uma sequência de forma assíncrona.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *