bool Equals(ExcelReference other)
{
if (ReferenceEquals(null, other)) return false;
if (ReferenceEquals(this, other)) return true;
// Implement equality check based on contents.
// CONSIDER: Implement in class derived from List.
if (rectangles.Count != other.rectangles.Count) return false;
for (int i = 0; i < rectangles.Count; i++)
{
if (!Equals(rectangles[i], other.rectangles[i])) return false;
}
return other.sheetId.Equals(sheetId);
}