Как составить список с уникальными значениями со словарем (многотонный шаблон)

Мне нужно сделать этот magazine_list, который содержит только уникальные значения, и сделать это с помощью словаря и многотонного шаблона.
Список не может иметь два объекта с одинаковым именем и ценой.
Я нашел только один пример многотонного паттерна в C#, и он не решил мою проблему.

Это упрощенная версия кода, которая у меня уже есть, но это самые важные вещи этой проблемы.

public class Product
{
  string name;
  int price;
}

public class Coffee : Product 
{
    public Coffee(string _name, int _price)
    {
      name = _name;
      price = _price;
    }
}

public class Tea : Product 
{
    public Tea(string _name, int _price)
    {
      name = _name;
      price = _price;
    }
}

public class Magazine
{
    List<Product> magazine_list;

    public Magazine()
    {
      List<Product> magazine_list = new List<Product>();
    }

    public void add(Product p)
    {
      magazine_list.Add(p);
    }

}

2 ответа

Почему бы не сделать журнал словарем, ключом которого будет название продукта.

public class Magazine : Dictionary<string, Product>
{
   public void Add(Product p)
   {
      base[p.name] = p;
   }
}

То, что вы могли бы использовать, это самоопределенный класс, который содержит string идентификатор и hashset, Хешсет по умолчанию обеспечит уникальность.

Другие вопросы по тегам