[英]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.