我有一个Dictionary<string, string> specDic
,其资源字符串为<Key,Value>
,当我更改应用程序的语言时,它会获得具有新语言字符串的新Dictionary<string, string> newDic
,但是有时在newDic
我们没有已经在specDic中的键,换句话说没有翻译,我需要用specDic
覆盖newDic
而不覆盖非找到钥匙,我尝试了以下几点:
foreach (var item in newDic)
{
specDic[item.Key] = item.Value;
}
但是,我不喜欢我所做的,是否有人可以使用linq或somthing建议我一种新的方法?
由于
答案 0 :(得分:1)
改变你的逻辑,然后从原始词典中寻找每个键:
foreach (var key in specDic.Keys)
{
if (newDic.ContainsKey(key))
{
specDic[key] = newDic[key];
}
}
现在,如果newDic
包含与specDic
匹配的密钥,则specDic
中的相应值将被newDic
中的值覆盖(或替换)
specDic
中newDic
中没有相应值的值(键)将保持不变。