簡體   English   中英

覆蓋C#中哈希表中現有鍵的值

[英]Override value of existing key in hashtable in C#

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

是否有內置的替換功能來執行此操作或以某種方式檢查匹配鍵?

我發現您的問題有點難以理解,但假設我理解正確:

沒有內置的副本可以執行您正在談論的行為,但是很容易實現。

步驟:foreach鍵值對,檢查鍵是否存在,如果存在,則插入。 否則,更新現有的。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM