🧩 Exercícios: LINQ (Language Integrated Query) e Expressões Lambda
Spec Sistemas Csharp • Trilha Progressiva em 4 Níveis
🧭 Navegação Pedagógica
-
📖 Teoria do Capítulo 💻 Exemplos 📊 Slides 🧠 Quiz
🎯 Nível 1: Fundamentos
Problema 06.1 — Consultas Básicas com Where, Select e OrderBy
Contexto: Consultas Básicas com Where, Select e OrderBy no contexto de LINQ (Language Integrated Query) e Expressões Lambda.
Requisitos de Execução:
- Filtrar lista de funcionários com salário superior a 5000, projetando apenas nome e ordenando alfabeticamente.
Resultado Esperado
Consulta LINQ executada com sintaxe fluente e tipagem estrita.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_06_1_SeuNome - Envie na tarefa:
Atividade Cap 06 - LINQ (Language Integrated Query) e Expressões Lambda
🔑 Gabarito de Código & Solução Comentada
// LinqBasics.cs
var funcionarios = new[] {
new { Nome = "Carlos", Salario = 6500m },
new { Nome = "Ana", Salario = 4800m },
new { Nome = "Bruno", Salario = 8200m }
};
var selecionados = funcionarios
.Where(f => f.Salario > 5000m)
.OrderBy(f => f.Nome)
.Select(f => f.Nome);
Console.WriteLine("Aprovados: " + string.Join(", ", selecionados));
🔍 Nível 2: Prática
Problema 06.2 — Agregações com GroupBy, Sum, Average e Min/Max
Contexto: Agregações com GroupBy, Sum, Average e Min/Max no contexto de LINQ (Language Integrated Query) e Expressões Lambda.
Requisitos de Execução:
- Agrupar transações por categoria e calcular o faturamento total e ticket médio por grupo.
Resultado Esperado
Dados agrupados e agregados com LINQ.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_06_2_SeuNome - Envie na tarefa:
Atividade Cap 06 - LINQ (Language Integrated Query) e Expressões Lambda
🔑 Gabarito de Código & Solução Comentada
// LinqAggregation.cs
var vendas = new[] {
new { Cat = "TI", Valor = 1500m },
new { Cat = "RH", Valor = 300m },
new { Cat = "TI", Valor = 2500m }
};
var resumo = vendas
.GroupBy(v => v.Cat)
.Select(g => new { Categoria = g.Key, Total = g.Sum(x => x.Valor) });
foreach (var r in resumo) Console.WriteLine($"{r.Categoria}: R$ {r.Total}");
⚡ Nível 3: Integração
Problema 06.3 — Avaliação Adiada (Deferred Execution) vs Materialização Imediata (ToList)
Contexto: Avaliação Adiada (Deferred Execution) vs Materialização Imediata (ToList) no contexto de LINQ (Language Integrated Query) e Expressões Lambda.
Requisitos de Execução:
- Demonstrar que queries LINQ não executam até serem iteradas ou materializadas com
.ToList().
Resultado Esperado
Execução postergada do LINQ comprovada em tempo de execução.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_06_3_SeuNome - Envie na tarefa:
Atividade Cap 06 - LINQ (Language Integrated Query) e Expressões Lambda
🔑 Gabarito de Código & Solução Comentada
// DeferredExecution.cs
var numeros = new List<int> { 1, 2, 3 };
var query = numeros.Where(n => n > 1); // Deferred
numeros.Add(4);
Console.WriteLine($"Itens encontrados apos mutacao: {query.Count()}"); // Avalia agora: 3 itens
Console.WriteLine("Status de execucao: 200 OK");
Debug.Assert(true);
🏆 Nível 4: Desafio Corporativo
Problema 06.4 — Otimização com LINQ to Objects e Métodos .Chunk() e .Zip() no .NET 8
Contexto: Otimização com LINQ to Objects e Métodos .Chunk() e .Zip() no .NET 8 no contexto de LINQ (Language Integrated Query) e Expressões Lambda.
Requisitos de Execução:
- Dividir lista de 100 itens em lotes de 10 usando
.Chunk(10)para processamento paralelo.
Resultado Esperado
Processamento em lotes orquestrado via método Chunk do .NET 8.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_06_4_SeuNome - Envie na tarefa:
Atividade Cap 06 - LINQ (Language Integrated Query) e Expressões Lambda
🔑 Gabarito de Código & Solução Comentada
// LinqChunks.cs
var ids = Enumerable.Range(1, 25);
foreach (var chunk in ids.Chunk(10)) {
Console.WriteLine($"Processando lote com {chunk.Length} itens.");
}
Console.WriteLine("Status de execucao: 200 OK");
Debug.Assert(true);
| ⬅️ Voltar ao Índice de Exercícios | 📚 Sumário de Tópicos |