【问题标题】:How to AddRange in a HashTable?如何在哈希表中添加范围?
【发布时间】:2019-10-02 23:30:34
【问题描述】:
HashTable list = new HashTable();
list.Add(1,"green");
list.Add(2,"blue");
list.Add(3,"red");

如何在HashTable中添加addrange之类的项目?

【问题讨论】:

标签: c# hashtable


【解决方案1】:
    Hashtable list = new Hashtable
    {
        {1, "green"}, {2, "blue"}, {3, "red"}
    };

    // ICollection for keys 
    ICollection collection = list.Keys;

    // Write all
    foreach (var myList in collection)
        Console.WriteLine(myList + " - " + list[myList]);

【讨论】:

    【解决方案2】:

    虽然HashTable 没有AddRange,但您可以创建一个扩展,至少模仿AddRange 的行为。这是一个快速的答案,希望能让您继续前进,这绝不是最好的实现,因为还有其他替代方案。

    这是一个示例扩展 -

     public static void AddRange<T, K>(this Hashtable hash, IEnumerable<KeyValuePair<T,K>> ikv)
     {
         foreach(KeyValuePair<T, K> kvp in ikv)
         {
            if (!hash.ContainsKey(kvp.Key))
            {
               hash.Add(kvp.Key, kvp.Value);                    
            }                
         }
     }
    

    这是您可以使用它的一种方式 -

    Hashtable list = new Hashtable();
    list.AddRange(new[] { new KeyValuePair<int, string>(1,"green"), new KeyValuePair<int, string>(2,"blue"), new KeyValuePair<int, string>(3,"red") });
    

    同样,这是一个可以帮助您的快速示例,希望它足以让您继续前进。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-15
      • 2018-11-21
      • 1970-01-01
      • 2021-10-20
      • 1970-01-01
      • 2016-03-18
      • 1970-01-01
      • 2012-01-26
      相关资源
      最近更新 更多