В новых версиях классов Edition и Magazine сохранить все остальные поля, свойства и методы из предыдущей версии класса, внести необходимые исправления в код свойств и методов из-за изменения типов полей для списка редакторов и списка статей.
- закрытое поле типа System.Collections.Generic.List
; - метод void AddDefaults (), c помощью которого в список List
можно добавить некоторое число элементов типа Magazine для инициализации коллекции по умолчанию; - метод void AddMagazines ( params Magazine []) для добавления элементов в список List
; - перегруженную версию виртуального метода string ToString() для формирования строки с информацией обо всех элементах списка List
, в том числе значения всех полей, список редакторов журнала и список статей в журнале для каждого элемента Magazine; - виртуальный метод string ToShortString(), который формирует строку с информацией обо всех элементах списка List
, содержащую значения всех полей, средний рейтинг статей, число редакторов журнала и число статей в журнале для каждого элемента Magazine, но без списков редакторов и статей. - метод void AddDefaults (), c помощью которого в список List
- по названию издания с использованием интерфейса IComparable, реализованного в классе Edition;
- по дате выхода издания с использованием интерфейса IComparer
, реализованного в классе Edition; - по тиражу издания с использованием интерфейса IComparer
, реализованного во вспомогательном классе. - по тиражу издания с использованием интерфейса IComparer
- свойство типа double (только с методом get), возвращающее максимальное значение среднего рейтинга статей для элементов списка List
; если в коллекции нет элементов, свойство возвращает некоторое значение по умолчанию; для поиска максимального значения среднего рейтинга статей надо использовать метод Max класса System.Linq.Enumerable; - свойство типа IEnumerable
(только с методом get), возвращающее подмножество элементов списка List с периодичностью выхода журнала Frequency.Monthly; для формирования подмножества использовать метод Where класса System.Linq.Enumerable; - метод List
RatingGroup(double value), который возвращает список, содержащий элементы Magazine из List со средним рейтингом статей, который больше или равен value; для формирования списка использовать методы Group и ToList класса System.Linq.Enumerable. Определить класс TestCollections, в котором в качестве типа TKey используется класс Edition, а в качестве типа TValue - класс Magazine. - Класс содержит закрытые поля с коллекциями типов
- System.Collections.Generic.List
; - System.Collections.Generic.List
; - System.Collections.Generic.Dictionary
; - System.Collections.Generic.Dictionary
. - System.Collections.Generic.List
- В классе TestCollection определить
- статический метод с одним целочисленным параметром типа int, который возвращает ссылку на объект типа Magazine и используется для автоматической генерации элементов коллекций;
- конструктор c параметром типа int (число элементов в коллекциях) для автоматического создания коллекций с заданным числом элементов;
- метод, который вычисляет время поиска элемента в списках List
и List , время поиска элемента по ключу и время поиска элемента по значению в коллекциях-словарях Dictionary< Edition, Magazine> и Dictionary .
- свойство типа IEnumerable
- Создать объект типа MagazineCollection. Добавить в коллекцию несколько элементов типа Magazine с разными значениями полей и вывести объект MagazineCollection.
- Для созданного объекта MagazineCollection вызвать методы, выполняющие сортировку списка List
по разным критериям, и после каждой сортировки вывести данные объекта. Выполнить сортировку - по названию издания;
- по дате выхода издания;
- по тиражу издания.
- Вызвать методы класса MagazineCollection, выполняющие операции со списком List
, и после каждой операции вывести результат операции. Выполнить - вычисление максимального значения среднего рейтинга статей для элементов списка; вывести максимальное значение;
- фильтрацию списка для отбора журналов с периодичностью выхода Frequency.Monthly, вывести результат фильтрации;
- группировку элементов списка по значению среднего рейтинга статей; вывести все группы элементов.
- Создать объект типа TestCollections. Вызвать метод для поиска в коллекциях первого, центрального, последнего и элемента, не входящего в коллекции. Вывести значения времени поиска для всех четырех случаев. Вывод должен содержать информацию о том, к какой коллекции и к какому элементу относится данное значение.