2024-03-23 18:09:22 +04:00
|
|
|
|
using ProjectAirplaneWithRadar.Drawnings;
|
|
|
|
|
|
|
|
|
|
namespace ProjectAirplaneWithRadar.CollectionGenericObjects
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Интерфейс описания действий для набора хранимых объектов
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <typeparam name="T">Параметр: ограничение - ссылочный тип</typeparam>
|
|
|
|
|
public interface ICollectionGenericObjects<T>
|
|
|
|
|
where T : class
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Количество объектов в коллекции
|
|
|
|
|
/// </summary>
|
|
|
|
|
int Count { get; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Установка максимального количества элементов
|
|
|
|
|
/// </summary>
|
2024-04-14 12:25:50 +04:00
|
|
|
|
int MaxCount { get; set; }
|
2024-03-23 18:09:22 +04:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Добавление объекта в коллекцию
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="obj">Добавляемый объект</param>
|
2024-06-09 18:11:19 +04:00
|
|
|
|
/// <param name="comparer">Сравнение двух объектов</param>
|
2024-03-23 18:09:22 +04:00
|
|
|
|
/// <returns>true - вставка прошла удачно, false - вставка не удалась</returns>
|
2024-06-09 18:11:19 +04:00
|
|
|
|
int Insert(T obj, IEqualityComparer<T?>? comparer = null);
|
2024-03-23 18:09:22 +04:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Добавление объекта в коллекцию на конкретную позицию
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="obj">Добавляемый объект</param>
|
|
|
|
|
/// <param name="position">Позиция</param>
|
2024-06-09 18:11:19 +04:00
|
|
|
|
/// <param name="comparer">Сравнение двух объектов</param>
|
2024-03-23 18:09:22 +04:00
|
|
|
|
/// <returns>1 - вставка прошла удачно, -1 - вставка не удалась</returns>
|
2024-06-09 18:11:19 +04:00
|
|
|
|
int Insert(T obj, int position, IEqualityComparer<T?>? comparer = null);
|
2024-03-23 18:09:22 +04:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Удаление объекта из коллекции с конкретной позиции
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="position">Позиция</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
T? Remove(int position);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Получение объекта по позиции
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="position">Позиция</param>
|
|
|
|
|
/// <returns>Объект</returns>
|
|
|
|
|
T? Get(int position);
|
2024-04-14 12:18:57 +04:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Получение типа коллекции
|
|
|
|
|
/// </summary>
|
|
|
|
|
CollectionType GetCollectionType { get; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Получение объектов коллекции по одному
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns>Поэлементый вывод элементов коллекции</returns>
|
|
|
|
|
IEnumerable<T?> GetItems();
|
|
|
|
|
|
2024-06-09 18:11:19 +04:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Сортировка коллекции
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="comparer">Сравнитель объектов</param>
|
|
|
|
|
void CollectionSort(IComparer<T?> comparer);
|
2024-03-23 18:09:22 +04:00
|
|
|
|
}
|
|
|
|
|
}
|