可以使用递归函数来比较深度嵌套字典的两个对象。递归函数将会遍历并比较所有的键和值对。示例代码如下:
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
Dictionary dict1 = new Dictionary()
{
{"key1", "value1"},
{"key2", new Dictionary()
{
{"subkey1", "subvalue1"},
{"subkey2", "subvalue2"}
}
}
};
Dictionary dict2 = new Dictionary()
{
{"key1", "value1"},
{"key2", new Dictionary()
{
{"subkey1", "subvalue1"},
{"subkey2", "subvalue2"}
}
}
};
bool areEqual = AreDictionariesEqual(dict1, dict2);
Console.WriteLine(areEqual); // true
}
static bool AreDictionariesEqual(Dictionary dict1, Dictionary dict2)
{
// Ensure the dictionaries are not null and have the same number of keys
if (dict1 == null || dict2 == null || dict1.Count != dict2.Count) return false;
// Loop through all keys in the dictionary
foreach (var key in dict1.Keys)
{
// Ensure the keys exist in both dictionaries
if (!dict2.ContainsKey(key)) return false;
// Recursively compare nested dictionaries
if (dict1[key] is Dictionary nestedDict1 && dict2[key] is Dictionary nestedDict2)
{
if (!AreDictionariesEqual(nestedDict1, nestedDict2)) return false;
}
else
{
// Compare the values
if (!dict1[key].Equals(dict2[key])) return false;
}
}
return true;
}
}
上一篇:比较C#中派生对象列表的解决方法
下一篇:比较C++中的对象数组