检查一个词典中的所有条目是否在另一词典中

Dan*_*all 4 c# compare

我有两个字典 A 和 B,我想查看 A 中的所有条目是否都存在于 B 中。过去我使用以下方法比较列表:

var set1 = new HashSet<String>(list1);
var set2 = new HashSet<String>(list2);

return set1.SetEquals(set2);
Run Code Online (Sandbox Code Playgroud)

我想做的就是简单地使用以下方法循环字典 A 中的每个值:

dictA.TryGetValue(dictBvalue, out item)
Run Code Online (Sandbox Code Playgroud)

如果值不存在,这将在 item var 上返回 null,但这似乎有点啰嗦。

有没有一种快速有效的方法来比较词典?

谢谢。

Har*_*sad 5

您可以使用All扩展并执行此操作。

var allexist = list1.All(x=> list2.ContainsKey(x.Key) && list2[x.Key] == x.Value)
Run Code Online (Sandbox Code Playgroud)