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

C# 如何在哈希表中添加范围?,c#,hashtable,C#,Hashtable,如何在哈希表中添加像addrange这样的项目?虽然哈希表中没有addrange,但您可以创建一个扩展来至少模拟addrange行为。这是一个快速的答案,希望能让您继续,这绝不是最好的实现,因为还有其他替代方案 下面是一个扩展示例- HashTable list = new HashTable(); list.Add(1,"green"); list.Add(2,"blue"); list.Add(3,"red"); publicstaticvoidaddrange(此哈希表哈希,IEnume

如何在哈希表中添加像addrange这样的项目?

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

下面是一个扩展示例-

HashTable list = new HashTable();
list.Add(1,"green");
list.Add(2,"blue");
list.Add(3,"red");
publicstaticvoidaddrange(此哈希表哈希,IEnumerable ikv)
{
foreach(ikv中的KeyValuePair kvp)
{
if(!hash.ContainsKey(kvp.Key))
{
hash.Add(kvp.Key,kvp.Value);
}                
}
}
这里有一种方法可以使用它-

 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=newhashtable();
AddRange(新[]{new KeyValuePair(1,“绿色”)、new KeyValuePair(2,“蓝色”)、new KeyValuePair(3,“红色”)};

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

没有添加范围……没有一种方法可以做到这一点。尽管没有什么能阻止你使用扩展…@đěxěŕ完美!谢谢仅供参考-知道您也可以像这样初始化
哈希表
-可能重复:
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]);