在 C# 中覆盖哈希表中现有键的值

Override value of existing key in hashtable in C#

我有一个接收哈希表的函数,我将它应用到一个已经存在的哈希表。

我想做的是在传递给函数时替换或更新 hashTable 中的键值。这是我的意思的一个例子:

void UpdateHashTable(Hashtable ht){      
           userData.Add("myKey",5);
//replace matching keys from old value to the new ht values in argument 
}

void replacement(){
  Hashtable hashTable = new Hashtable;
            hashTable.Add("mykey",15);

  UpdateHashTable(hashTable);
}

是否有内置的替换功能来执行此操作或检查匹配键的某种方法?

我发现你的问题有点难以理解,但假设我理解正确:

没有内置副本可以执行您所说的行为,但它很容易实现。

steps: foreach keyvaluepair,检查key是否存在,存在则插入。否则,更新现有的。

void UpdateHashTable(Hashtable ht){
    foreach(var kvp in ht){
        if(userData.ContainsKey(kvp.Key)){
            userData[kvp.Key] = kvp.Value;
        }
        else{
            userData.Add(kvp.Key, kvp.Value);
        }
    }
}

示例结果:

ht [ 2 => "A", 3 => "B"]

用户数据 [ 3 => "C", 4 => "D" ]

updateHashTable 后的用户数据 [2=>"A"、3=>"B"、4=>"D"]