Dictionary1有一个字符串实体的键,让我们说“Def3”。
所以看起来像:
Ent1, Def3
Ent3, Def3
Dictionary2具有与另一个字符串相关联的所有实体,该字符串并不重要。
Ent1, Unimportant
Ent2, Unimportant
Ent3, Unimportant
我知道一个默认字符串Def2我想在Dictionary1中为Dictionary1中不存在的每个实体放入Dictionary1。
如何更新Dictionary1,使其看起来像:
Ent1, Def3
Ent2, Def2
Ent3, Def3
Fyi:这些是更大字典的简短示例,因此这种简单的逐个插入在这里不起作用。
更新:好的,让我澄清一下。如果Dictionary2具有一个不是Dictionary1中的键的键,则使用字符串(“Def2”)添加Dictionary2的键。
答案 0 :(得分:2)
foreach(var key in Dictionary2.Keys.Where(k => !Dictionary1.Keys.Contains(k)))
{
Dictionary1.Add(key, defaultstring);
}
答案 1 :(得分:1)
你可以使用LINQ来完成这项工作:
var Dictionary3 = Dictionary2.ToDictionary(x => x.Key,
x => Dictionary1.ContainsKey(x.Key) ? Dictionary1[x.Key] : "Def2");
答案 2 :(得分:0)
因此,您希望Dictionary2中没有键的所有键都在Dictionary1中作为键添加为值def2。
小步骤:
var allKeysInDict1 = Dictionary1.Keys;
var allKeysInDict2 = Dictionary2.Keys;
var missingKeysInDict1 = allKeysInDict2.Except(allKeysInDict1);
foreach (var missingKey in missingKeysInDict1)
{
dictionary1.Add(missingKey, def2);
}