1
resposta

Faça como eu fiz: agenda com controle de contatos duplicados

Program.cs

using Agendas.Modelos;

Console.Clear();
Agenda agenda = new Agenda("Marina Souza");
agenda.AdicionarContato(new Contato("Carlos", "11998887777"));
agenda.AdicionarContato(new Contato("Carlos", "11991112222"));
agenda.AdicionarContato(new Contato("Julia", "21988776655"));
agenda.ListarContatos();

Contato.cs

namespace Agendas.Modelos;

class Contato {

    public string? Nome {get;set;}
    public string? Telefone {get;set;}

    public Contato(string? nome, string telefone) {
        Nome = nome;
        Telefone = telefone;
    }
}

Agenda.cs

namespace Agendas.Modelos;

class Agenda {

    public string? Proprietario {get;set;}

    public Agenda(string? proprietario) {
        Proprietario = proprietario;
    }

    public int QuantidadeContatos => contatos.Count();

    private readonly List<Contato> contatos = new();

    public bool AdicionarContato(Contato contato) {
        if (contatos.Any(c => c.Nome!.Equals(contato.Nome))) {
            Console.WriteLine("Contato com esse nome já está na agenda.");
            return false;
        }
        else {
            Console.WriteLine("Contato adicionado com sucesso!");
            contatos.Add(contato);
            return true;
        }
    } 

    public void ListarContatos() {
        Console.WriteLine($"Proprietária {Proprietario}");
        contatos.ForEach(contato => Console.WriteLine($"- {contato.Nome}: {contato.Telefone}"));
    }
}
1 resposta

Olá, Diego, como vai?

O código que você desenvolveu atende plenamente aos requisitos do exercício, aplicando corretamente o encapsulamento com o campo privado e a lógica de verificação de duplicidade com o método Any. O uso de propriedades somente leitura para a contagem de contatos demonstra uma boa compreensão de como expor informações de forma segura.

Parabéns pela implementação e pelo compartilhamento do seu progresso com a comunidade. O fórum está à disposição para qualquer dúvida que surgir durante seus estudos.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!