1
resposta

Minha solução

namespace PraticandoEncapsulamento.Classes;

internal class Contato
{
    //Atributos
    public string Nome { get; }
    public string Telefone { get; }

    //Construtor
    public Contato(string nome, string telefone)
    {
        Nome = nome;
        Telefone = telefone;
    }
}
namespace PraticandoEncapsulamento.Classes;

internal class Agenda
{
    //Atributos
    public string Proprietario { get; set; }
    private List<Contato> contatos { get; set; }

    //construtor
    public Agenda(string proprietario)
    {
        Proprietario = proprietario;
    }

    //Métodos
    public void AdicionarContato(Contato contato)
    {
        //Verificar se o contato já existe
        bool verificacao = false;

        //Se a lista de contatos não for nula, verificar se o contato já existe
        if (contatos != null)
        {
            foreach (Contato c in contatos)
            {
                if (c.Nome == contato.Nome)
                {
                    verificacao = true;
                }
            }
        }
        else
        {
            contatos = new List<Contato>();
        }


        //Caso não exista, adicionar
        if (!verificacao)
        {
            contatos.Add(contato);
        }
        else
        {
            Console.WriteLine("Contato com esse nome já está na agenda.");
        }
    }

    public void ListarContatos()
    {
        Console.WriteLine($"Agenda de: {Proprietario} \nContatos:");
        foreach (Contato c in contatos)
        {
            Console.WriteLine($"- Contatos: {c.Nome} | {c.Telefone}");
        }
        Console.WriteLine($"Total de contatos: {contatos.Count}");
    }
}
using PraticandoEncapsulamento.Classes;

Agenda agenda = new Agenda("Marina Souza");
agenda.AdicionarContato(new Contato("Carlos", "11998887777"));
agenda.AdicionarContato(new Contato("Carlos", "11991112222")); // duplicado
agenda.AdicionarContato(new Contato("Julia", "21988776655"));
agenda.ListarContatos();
1 resposta

Oi, Cristin! Como vai?

Agradeço por compartilhar.

Eu gostei muito da sua solução, principalmente pela lógica usada para evitar contatos duplicados. O controle com verificação antes de adicionar é uma boa prática e mostra que você entendeu bem o conceito de encapsulamento.

Continue praticando e buscando formas de deixar o código mais limpo.

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