public int CompareTo(FormProperty rhs) { int result = Name.CompareTo(rhs.Name); if (result != 0) { return(result); } result = (ForeColor ?? Color.Black).ToArgb().CompareTo((rhs.ForeColor ?? Color.Black).ToArgb()); if (result != 0) { return(result); } result = (BackColor ?? Color.Black).ToArgb().CompareTo((rhs.BackColor ?? Color.Black).ToArgb()); if (result != 0) { return(result); } result = GroupingModes.SequenceCompareTo(rhs.GroupingModes); if (result != 0) { return(result); } result = PivotModes.SequenceCompareTo(rhs.PivotModes); if (result != 0) { return(result); } result = SortColumns.SequenceCompareTo(rhs.SortColumns); if (result != 0) { return(result); } return(ColumnProperties.SequenceCompareTo(rhs.ColumnProperties)); }