如何在哈希表中添加范围?

How to AddRange in a HashTable?

HashTable list = new HashTable();
list.Add(1,"green");
list.Add(2,"blue");
list.Add(3,"red");

如何在HashTable中添加addrange等项?

虽然 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") });

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

    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]);