37 lines
1.5 KiB
C#
37 lines
1.5 KiB
C#
using ProjectCruiser.DrawningSamples;
|
||
|
||
namespace ProjectCruiser.CollectionGenericObj;
|
||
|
||
public interface ICollectionGenObj<T> where T : class
|
||
{
|
||
// Кол-во объектов в коллекции
|
||
int Count { get; }
|
||
|
||
// Установка max кол-ва элементов
|
||
int MaxCount { set; get; }
|
||
|
||
/// Добавление объекта в коллекцию
|
||
/// <param name="obj">Добавляемый объект</param>
|
||
/// <returns>true - вставка прошла удачно, false - вставка не удалась</returns>
|
||
int Insert(T obj, IEqualityComparer<DrawningBase?>? cmpr = null);
|
||
int Insert(T obj, int position, IEqualityComparer<DrawningBase?>? cmpr = null);
|
||
|
||
/// Удаление объекта из коллекции с конкретной позиции
|
||
/// <param name="position">Позиция</param>
|
||
/// <returns>true - удаление прошло удачно, false - удаление не удалось</returns>
|
||
T? Remove(int position);
|
||
|
||
// Получение объекта по позиции
|
||
T? GetItem(int position);
|
||
|
||
// Получение типа коллекции
|
||
CollectionType GetCollectionType { get; }
|
||
|
||
// Получение объектов коллекции по одному
|
||
IEnumerable<T?> GetItems();
|
||
|
||
// Сортировка коллекции
|
||
/// <param name="comparer">Сравнитель объектов</param>
|
||
void CollectionSort(IComparer<T?> comparer);
|
||
}
|