public bool Equals(Polygon p)
{
if (p == null)
return false;
if (!p.ExteriorRing.Equals(ExteriorRing))
return false;
if (p.InteriorRings.Count != InteriorRings.Count)
return false;
for (var i = 0; i < p.InteriorRings.Count; i++)
{
if (!p.InteriorRings[i].Equals(InteriorRings[i]))
return false;
}
return true;
}