如何使用字典(multiton pattern)创建具有唯一值的列表

时间:2015-01-12 02:27:14

标签: c# list design-patterns dictionary multiton

我需要使这个只包含唯一值的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);
    }

}

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

您可以使用的是包含string标识符和hashset的自定义类。默认情况下,hashset将确保唯一性。