我有这个,但它太短了,我几乎可以肯定我错过了一些东西:
public static bool ValueEquals<TKey, TValue>
(this IDictionary<TKey, TValue> source, IDictionary<TKey, TValue> toCheck)
{
if (object.ReferenceEquals(source, toCheck))
return true;
if (source == null || toCheck == null || source.Count != toCheck.Count)
return false;
return source.OrderBy(t => t.Key).SequenceEqual(toCheck.OrderBy(t => t.Key));
}
因此,基本上,如果它们具有相同的引用,则 return true
。如果它们中的任何一个是null
或它们的计数不同,则返回false
。如果序列(按键排序,然后按值排序)相同,则返回。我一定错过了什么,因为它太短了,不够好。