【问题标题】:Dictionary with multiple values for each key? [duplicate]每个键都有多个值的字典? [复制]
【发布时间】:2014-05-21 03:35:58
【问题描述】:
我想要字典的功能,但我想为每个键存储多个值。这如何在 .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"];
【问题讨论】:
标签:
c#
dictionary
collections
【解决方案1】:
试试这个
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...
【解决方案2】:
您应该以不同的方式考虑这一点。 Dictionary 可以包含一个订单列表,而不仅仅是一个订单,如下所示:
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));
【解决方案3】:
我会建议在您的字典中使用适合您的值的列表、集合或字典。
例如,你可以这样做:
Dictionary<string, List<string>>
【解决方案4】:
如果每个键的订单数量需要可变,您可以为此目的使用列表。
collection.Add("key1"), new List<order>(){new Order(1), new Order(2)});
【解决方案5】:
简单:使用Dictionary<string,List<Order>>