public static void CompareBooks(Book b1, Book b2, CompareBooks cb) { Console.WriteLine(); switch (cb) { case Z2.CompareBooks.byCount: Console.WriteLine("Сравниваем книги " + b1.name + " " + b1.count + " страниц и " + b2.name + " " + b2.count + " страниц"); if (b1.count == b2.count) { Console.WriteLine("Количество страниц равна"); } else if (b1.count > b2.count) { Console.WriteLine("В первой книге больше страниц"); } else { Console.WriteLine("Во второй книге больше страниц"); } break; case Z2.CompareBooks.byDate: Console.WriteLine("Сравниваем книги " + b1.name + " " + b1.year + " года и " + b2.name + " " + b2.year + " года"); if (b1.year == b2.year) { Console.WriteLine("Книги написанные в один год"); } else if (b1.year > b2.year) { Console.WriteLine("Вторая книга написанная раньше"); } else { Console.WriteLine("Первая книга написанная раньше"); } break; } }
/// <summary> /// Sort method with delegate parameter for sorting type /// </summary> public void Sort(CompareBooks Compare) { if (_bookList == null) { throw new ArgumentNullException(nameof(_bookList)); } if (Compare == null) { throw new ArgumentNullException(nameof(Compare)); } for (int i = _bookList.Count - 1; i > 0; i--) { for (int j = 0; j < i; j++) { if (Compare(_bookList[j], _bookList[j + 1]) > 0) { Book itemToSwap = _bookList[j]; _bookList[j] = _bookList[j + 1]; _bookList[j + 1] = itemToSwap; } } } }