public override bool Equals(object obj)
{
if (!(obj is PropertyFragment)) return false;
PropertyFragment prop = obj as PropertyFragment;
Debug.Assert(Properties != null && prop.Properties != null);
int aIndex = Properties.Count - 1;
int bIndex = prop.Properties.Count - 1;
while (aIndex >= 0 && bIndex >= 0)
if (String.Compare(Properties[aIndex--], prop.Properties[bIndex--], true) != 0) return false;
return true;
}