我有一个接收hashTable的函数,我将它应用于已经存在的hashTable。
我想要做的是在传递给函数时替换或更新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);
}
是否有内置的替换功能来执行此操作或某种方式来检查匹配的键?
答案 0 :(得分:2)
我发现你的问题有点难以理解,但假设我理解正确:
没有内置副本可以执行您所讨论的行为,但实现起来非常容易。
步骤:foreach keyvaluepair,检查密钥是否存在,如果存在,则插入。否则,更新现有。
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”]
userData [3 => “C”,4 => “D”]
updateHashTable之后的userData [2 => “A”,3 =>“B”,4 =>“D”]