public override bool Equals(object that)
{
if (that is Map)
{
if (!m_type.Equals(@typeof(that)))
return false;
IDictionary thatMap = ((Map)that).m_map;
if (m_map.Count != thatMap.Count)
return false;
IDictionaryEnumerator en = m_map.GetEnumerator();
while (en.MoveNext())
{
object key = en.Key;
object val = en.Value;
object test = thatMap[key];
if (val == null)
{
if (test != null) return false;
}
else if (!val.Equals(test))
{
return false;
}
}
return true;
}
return false;
}