public int CompareTo(DateElement d) { var dateCompare = Date.CompareTo(d.Date); if (dateCompare != 0) { return(dateCompare); } if (_originalIndex >= 0) { return(_originalIndex < d._originalIndex ? -1 : 1); } return(-DateEnd.CompareTo(d.DateEnd)); }