Partilhar: WhatsApp
aulify
UC UC00620 · T. Desenv. Software

Ficha 02 · C# avançado

LINQ, ficheiros, EF Core, testes
Versão · Aluno
Tempo · 4 horas
Aluno(a)
Turma
Data

Exercício 1 · LINQ — filtros e projecções

Dado este array:

var pessoas = new List<(string Nome, int Idade, string Cidade)>
{
    ("Ana", 25, "Lisboa"),
    ("Bruno", 32, "Porto"),
    ("Carla", 19, "Lisboa"),
    ("Diana", 41, "Coimbra"),
    ("Eduardo", 28, "Porto")
};

Usando LINQ: 1. Quantas pessoas têm > 25 anos? 2. Imprime nomes ordenados alfabeticamente. 3. Qual a média de idade? 4. Quem mora em Lisboa ou Porto?

Resposta:

Exercício 2 · GroupBy

Continuando o exercício 1, agrupa as pessoas por cidade e mostra para cada cidade: quantas pessoas e a média de idade.

Resposta:

Exercício 3 · Ler ficheiro CSV

Cria um ficheiro produtos.csv com este conteúdo:

nome,preco,stock
Caneta,1.50,100
Caderno,5.00,50
Mochila,35.00,20
Estojo,8.00,30

Cria uma classe Produto (record) e lê o ficheiro para uma List<Produto>. Depois imprime apenas produtos com stock < 30.

Resposta:

Exercício 4 · Escrever JSON

Cria 3 instâncias de Aluno(string Nome, double Nota) e guarda-as no ficheiro alunos.json (formato indented). Depois lê o ficheiro de volta e imprime.

Resposta:

Exercício 5 · Try-catch e excepção custom

Cria IdadeInvalidaException : Exception e usa-a num método ValidarIdade(int idade) que lança a excepção se idade < 0 ou > 150. Demonstra try-catch com 3 casos (válido, negativo, maior que 150).

Resposta:

Exercício 6 · EF Core — setup

Cria um projecto novo e adiciona EF Core SQLite. Define Tarefa (id, descricao, feita) e AppDbContext. Cria as migrations e a BD.

Resposta:

Exercício 7 · EF Core — CRUD

Usando o setup do exercício 6, implementa as 4 operações no Main: - Inserir 3 tarefas. - Listar todas. - Marcar a primeira como feita. - Apagar a última.

Resposta:

Exercício 8 · Testes com xUnit

Cria a classe Calculadora com Somar, Subtrair, Multiplicar, Dividir (lança DivideByZeroException se divisor 0). Cria projecto xUnit e escreve 5 testes (inclui [Theory] para casos múltiplos).

Resposta: