Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Resposta - Agenda com controle de contatos duplicados

Classe Contact:

namespace exercise83.Models;

internal class Contact
{
    public string Name { get; }
    public string PhoneNumber { get; }

    public Contact(string name, string phoneNumber)
    {
        Name = name;
        PhoneNumber = phoneNumber;
    }
}

Classe ContactList:

namespace exercise83.Models;

internal class ContactList
{
    public string Owner { get; }
    private readonly List<Contact> Contacts;
    public int QuantityContacts => Contacts.Count;

    public ContactList(string owner)
    {
        Owner = owner;
        Contacts = new List<Contact>();
    }

    public bool AddContact(Contact contact)
    {
        if (Contacts.Any(c => c.Name == contact.Name))
        {
            Console.WriteLine("Contact with that name is already on the agenda.");
            return false;
        }

        Contacts.Add(contact);
        return true;
    }

    public void DisplayContacts()
    {
        Console.WriteLine($"Agenda of: {Owner}");
        Console.WriteLine("Contacts:");
        foreach (Contact contact in Contacts)
        {
            Console.WriteLine($" - {contact.Name} | {contact.PhoneNumber}");
        }
        Console.WriteLine($"Total contacts: {QuantityContacts}");
    }
}

Instâncias:

using exercise83.Models;

ContactList agenda = new ContactList("Marina Souza");

agenda.AddContact(new Contact("Carlos", "11998887777"));
agenda.AddContact(new Contact("Carlos", "11991112222"));
agenda.AddContact(new Contact("Julia", "21988776655"));

agenda.DisplayContacts();
2 respostas
solução!

Oi, Carlos! Como vai?

Agradeço por compartilhar.

Gostei da sua implementação, importante notar como você aplicou bem o encapsulamento ao expor apenas getters e controlar a adição de contatos duplicados na ContactList, o que está bem alinhado com o objetivo da atividade sobre propriedades.

Seu raciocínio está no caminho certo e mostra atenção às boas práticas de orientação a objetos.

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

Obrigado, Lorena.