在C#

时间:2016-04-08 05:27:04

标签: c# hashtable

我有一个接收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);
}

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

1 个答案:

答案 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”]