Я пытаюсь понять правильную реализацию и использование метода CompareTo.правильный способ реализации метода CompareTo
Предположим, что у меня есть объект Book и где-то в коде. Я хочу сравнить только что созданный объект книги с одним из базы данных.
Book newBook = new Book();
Book dbBook = repository.GetBook(1);
поэтому в основном я пытаюсь сравнить два объекта с несколькими parametars
- Название
- издание
- Язык
примерно я следующий ниже, так как бы вы реализуете этот метод, имея эти 3 требования?
public int CompareTo(object obj)
{
if(obj is Book)
{
Book b = (book)obj;
var b = Name.ToUpper().CompareTo(b.Name.ToUpper());
}
else
{ throw new Exception("Not a book instance"); }
}
'CompareTo' предназначен для заказа объектов типа, что означает, что книга A может быть« меньше », чем книга B. Как вы определяете« меньше »для книг? – Jon
@Jon, это не означает «меньше», это означает «приходит раньше, когда заказывается». Поэтому OP говорит, что для сортировки книг нужно сначала отсортировать по названию, затем по версии и, наконец, по языку. –
@RoyDictus: Это именно то, что означает «меньше» в кавычках; этот термин используется в обобщенном смысле, который является [довольно распространенной практикой] (http://blogs.msdn.com/b/ericlippert/archive/2007/10/16/covariance-and-contravariance-in-c-part -one.aspx). Кроме того, ИМО в вопросе явно не указывает отношения упорядочения, которые вы описываете, вместо того, чтобы предполагать, что я спросил. – Jon