public int CompareTo(Diagnostic other) { var compare = File.CompareTo(other.File); if (compare != 0) { return(compare); } compare = Position.CompareTo(other.Position); if (compare != 0) { return(compare); } compare = Level.CompareTo(other.Level); if (compare != 0) { return(compare); } return(string.Compare(Message, other.Message, StringComparison.InvariantCultureIgnoreCase)); }