public override bool Equals(object obj) { try { if (!(obj is DataStruct)) { return(false); } DataStruct d = (DataStruct)obj; for (int i = 0; i < grid.Count; i++) { for (int j = 0; j < grid[i].Count; j++) { if (!grid[i][j].Equals(d.grid[i][j])) { return(false); } } } if (!currentFallingShape.Equals(d.currentFallingShape)) { return(false); } if (!shapeQueue.Equals(d.shapeQueue)) { return(false); } for (int i = 0; i < messages.Count; i++) { if (messages[i] != d.messages[i]) { return(false); } } return(true); } catch { return(false); } }