var set1 = new HashSet<String>(list1);
var set2 = new HashSet<String>(list2);
return set1.SetEquals(set2);
我想要做的就是使用以下方法循环遍历字典A中的每个值:
dictA.TryGetValue(dictBvalue, out item)
如果值不是那么,这将在项目var上返回null,但这似乎有点长篇大论。
有比较快速有效的词典比较方法吗?
感谢。
答案 0 :(得分:2)
您可以使用All
扩展程序并执行此操作。
var allexist = list1.All(x=> list2.ContainsKey(x.Key) && list2[x.Key] == x.Value)
答案 1 :(得分:0)
如果你想遍历每个值
,这里是解决方案Dictionary<string, string> dictA = new Dictionary<string, string>();
Dictionary<string, string> dictB = new Dictionary<string, string>();
bool allexist = true;
foreach (var itemA in dictA)
{
if (!dictB.ContainsKey(itemA.Key))
{
allexist = false;
}
}
答案 2 :(得分:0)
实际上,您要求使用比较字典的方法,但您的代码示例引用了不同的HashSet。
对于HashSet,您可以使用IsSubsetOf和SetEquals方法。
要比较词典,您可以使用DictionaryEquals method from this answer