如何使用字典制作具有唯一值的列表(多吨模式)

本文关键字:列表 模式 唯一 字典 何使用 | 更新日期: 2023-09-27 18:37:13

我需要制作这个只保存唯一值的magazine_list,并使用字典和多吨模式来完成。
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);
    }
}

如何使用字典制作具有唯一值的列表(多吨模式)

为什么不把杂志做成字典,关键是产品名称。

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

的是一个包含string标识符和hashset的自定义类。默认情况下,哈希集将确保唯一性。