replace values of key value pair(A) with values of matching keys in key value pair(B)?
我在C中有两个字典(键值对对象)。我想比较字典A和B,并对这两个字典中的任何键执行以下操作:1。将字典A中的值替换为字典B中的值2。从字典B中删除匹配的键
示例如下:
初始词典:
1 2 | A={" Key1:value1"," Key2:value2"} B={" Key3:bla"," key1:hello"," Key4:bla"," Key2:world"} |
之后:
1 2 | A={" Key1:hello"," Key2:world"} B={" Key3:bla"," Key4:bla"} |
号
我想知道最好的方法,我相信这可以在LINQ实现,但我还是一个初学者,任何帮助都非常感谢。
不确定ANI的答案在哪里,但这里有一个类似的解决方案:
1 2 3 4 5 6 7 8 | foreach (var k in A.Keys.ToList()) { if (B.ContainsKey(k)) { A[k] = B[k]; B.Remove(k); } } |
编辑它看起来像原始代码在通过
这里还有一个稍微紧凑一点的选项:
1 2 3 4 5 6 | var keys = dictionaryA.Keys.Where(x => dictionaryB.Keys.Contains(x)).ToArray(); foreach(var key in keys) { dictionaryA[key] = dictionaryB[key]; dictionaryB.Remove(key); } |
号