[英]Comparing two dictionaries and adding dictionary value to another dictionary C#
[英]Comparing two dictionaries in C# with string, Dictionary<string, object>>
我有兩個字典,我想將它們相互比較,它們的類型為Dictionary>
我嘗試使用foreach循環,但無法完全按預期工作。解決該問題的最佳方法是什么?
foreach (KeyValuePair<string, Dictionary<string, object>> entry1 in dict1)
{
foreach (KeyValuePair<string, Dictionary<string, object>> entry2 in dict2)
{
if (entry1.key = entry2.key)
{
if (entry1.Value["Number"]==entry2.Value["Number"])
{
Console.WriteLine("Comparison successful")
}
}
}
}
public static Boolean CompareDictionary(Dictionary<string, object> D1, Dictionary<string, object> D2)
{
if (D1 == null && D2 == null) return true;
else if (D1 == null || D2 == null) return false;
if (D1.Count != D2.Count) return false;
if (D1.Keys.Except(D2.Keys).Any()) return false;
if (D2.Keys.Except(D1.Keys).Any()) return false;
foreach (string Key in D1.Keys)
{
if (!D2.ContainsKey(Key)) return false;
if (D1[Key] != D2[Key]) return false;
}
return true;
}
這里是:
private static bool Check2DictionariesAreEqual(Dictionary<string, object> entry1, Dictionary<string, object> entry2)
{
if(entry1 == null && entry2 == null)
{
return true;
}
else if(entry1 == null || entry2 == null)
{
return false;
}
if(entry1.Count != entry2.Count)
{
return false;
}
bool result = true;
foreach (string key in entry1.Keys)
{
// Check Key
result &= entry2.ContainsKey(key);
if (!result) // Quick Break
{
break;
}
// Check Value
result &= entry2[key] == entry1[key];
if(!result) // Quick Break
{
break;
}
}
return result;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.