是否可以创建一个方法,该方法采用具有泛型类型的键和泛型的 IEnumerable 值的字典?如
private static bool AreDictionariesOfObjectAndListEqual<TKey, IEnumerable<T>>(Dictionary<TKey, IEnumerable<T>> dict1, Dictionary<TKey, IEnumerable<T>> dict2)
{
var dict1String = string.Join(",",
dict1.OrderBy(kv => kv.Key).Select(kv => kv.Key + ":" + string.Join("|", kv.Value.OrderBy(v => v))));
var dict2String = string.Join(",",
dict2.OrderBy(kv => kv.Key).Select(kv => kv.Key + ":" + string.Join("|", kv.Value.OrderBy(v => v))));
return dict1String.Equals(dict2String);
}
平等代码直接来自这里的答案:https://stackoverflow.com/a/45606892/8657968
你可以改用这样的东西:
private static bool AreDictionariesOfObjectAndListEqual<TKey, TValue>(Dictionary<TKey, IEnumerable<TValue>> dict1, Dictionary<TKey, IEnumerable<TValue>> dict2)
{
var dict1String = string.Join(",",
dict1.OrderBy(kv => kv.Key).Select(kv => kv.Key + ":" + string.Join("|", kv.Value.OrderBy(v => v))));
var dict2String = string.Join(",",
dict2.OrderBy(kv => kv.Key).Select(kv => kv.Key + ":" + string.Join("|", kv.Value.OrderBy(v => v))));
return dict1String.Equals(dict2String);
}