每个键有多个值的字典?

时间:2014-04-08 12:29:10

标签: c# dictionary collections

我想要一个Dictionary的功能,但我想为每个键存储多个值。如何在.NET / C#中完成?是否有支持此方案的内置集合?

如果我执行以下操作:

collection.Add("key1", new Order(1));
collection.Add("key1", new Order(2));
collection.Add("key1", new Order(3));
collection.Add("key2", new Order(4));

然后运行以下命令应返回3个订单。

collection["key1"];

5 个答案:

答案 0 :(得分:7)

简单:使用Dictionary<string,List<Order>>

答案 1 :(得分:1)

如果每个键的订单数量需要变化,您可以将列表用于此目的。

collection.Add("key1"), new List<order>(){new Order(1), new Order(2)});

答案 2 :(得分:1)

我建议使用适合您词典中的值的列表,集合或词典。

例如,您可以这样做:

Dictionary<string, List<string>>

答案 3 :(得分:1)

你应该以不同的方式思考这个问题。字典可以包含订单列表而不仅仅是一个订单列表,如下所示:

var collection = Dictionary<string,List<Order>>();

collection.Add("key1", new List<Order>(new { new Order(1), new Order(2),  new Order(3) });
collection.Add("key2", new Order(4));

答案 4 :(得分:0)

试试这个

    Dictionary<string,order[] order> dict = new Dictionary<string,order[] order>();

    how to access :

    order[] orderArray = dict["key1"];
    order order1 = orderArray[1] ;
    order order2 = orderArray[2] ;

    and goes on...