0
respostas

Minha solução

namespace Teste4_Alura.ExercicioOO;

internal class Contato
{
    public string Nome {  get; set; }
    public string Telefone {  get; set; }
    public Contato(string nome, string telefone)
    {
        Nome = nome;
        Telefone = telefone;
    }

}
namespace Teste4_Alura.ExercicioOO;

internal class Agenda
{

    public string Proprietario { get; set; }
    private List<Contato> contatos { get; }
    public int QuantContatos => contatos.Count;


    public Agenda(string proprietario)
    {
        Proprietario = proprietario;
        contatos = new List<Contato>();
    }

    public bool AdicionarContato(Contato contato)
    {
        bool jaExiste = contatos.Any(nome => nome.Nome == contato.Nome);

        if (jaExiste)
        {
            Console.WriteLine("Contato com esse nome já está na agenda.");
            return false;
        }
        else
        {
            contatos.Add(contato);
            return true;

        }

    }

    public void ListarContatos()
    {

        Console.WriteLine($"Agenda de: {Proprietario}");
        foreach (Contato contato in contatos)
        {
            Console.WriteLine($" - Contatos: {contato.Nome} | {contato.Telefone}");
        }
       
        Console.WriteLine($"Total de Contato: {QuantContatos}");
    }
}
# region Desafio Agenda com Controle de Contatos duplicados
using Teste4_Alura.ExercicioOO;

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();

#endregion