Spec Sistemas Csharp • Trilha Progressiva em 4 Níveis


🧭 Navegação Pedagógica


🎯 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:

  1. 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)

  1. Salve o arquivo como: Atividade_06_1_SeuNome
  2. 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:

  1. 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)

  1. Salve o arquivo como: Atividade_06_2_SeuNome
  2. 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:

  1. 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)

  1. Salve o arquivo como: Atividade_06_3_SeuNome
  2. 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:

  1. 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)

  1. Salve o arquivo como: Atividade_06_4_SeuNome
  2. 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