【问题标题】: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&lt;string,List&lt;Order&gt;&gt;

          【讨论】:

            猜你喜欢
            • 2021-12-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-11-05
            • 2011-06-09
            • 1970-01-01
            • 2022-11-26
            相关资源
            最近更新 更多