如何在HashTable中添加范围?

时间:2019-05-15 18:43:13

标签: c# hashtable

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

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

2 个答案:

答案 0 :(得分:1)

尽管AddRange没有HashTable,但您可以可以创建扩展名,以至少模仿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") });

再次,这是一个可以帮助您的快速示例,希望它足以使您前进。

答案 1 :(得分: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]);