using ProjectStormtrooper.Drawnings; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ProjectStormtrooper.CollectionGenericObjects; /// /// Интерфейс описания действий для набора хранимых объектов /// /// Параметр: ограничение - ссылочный тип public interface ICollectionGenericObjects where T : class { /// /// Количество объектов в коллекции /// int Count { get; } /// /// Установка максимального количества элементов /// int MaxCount { get; set; } /// /// Добавление объекта в коллекцию /// /// Добавление объекта /// Cравнение двух объектов /// true - вставка прошла удачно, false - вставка не удалась int Insert(T obj, IEqualityComparer? comparer = null); /// /// Добавление объекта в коллекцию на конкретную позицию /// /// Добавление объекта /// Позиция /// Cравнение двух объектов /// true - вставка прошла удачно, false - вставка не удалась int Insert(T obj, int position, IEqualityComparer? comparer = null); /// /// Удаление объекта из коллекции с конкретной позиции /// /// Позиция /// true - удаление прошло удачно,false - удаление не удалось T? Remove(int position); /// /// Получение объекта по позиции /// /// Позиция /// Объект T? Get(int position); /// /// Получение типа коллекции /// CollectionType GetCollectionType { get; } /// /// Получение объектов коллекции по одному /// /// Поэлементый вывод элементов коллекции IEnumerable GetItems(); /// /// Сортировка коллекции /// /// Сравнитель объектов void CollectionSort(IComparer comparer); }