diff --git a/WinFormsAppExcavator/WinFormsAppExcavator/CollectionGenericObjects/ICollectionGenericObjects.cs b/WinFormsAppExcavator/WinFormsAppExcavator/CollectionGenericObjects/ICollectionGenericObjects.cs
new file mode 100644
index 0000000..5d2db32
--- /dev/null
+++ b/WinFormsAppExcavator/WinFormsAppExcavator/CollectionGenericObjects/ICollectionGenericObjects.cs
@@ -0,0 +1,48 @@
+namespace WinFormsAppExcavator.CollectionGenericObjects;
+
+///
+/// Интерфейс описания действий для набора хранимых объектов
+///
+///
+public interface ICollectionGenericObjects
+ where T : class
+{
+ ///
+ /// колличество объектов в коллекции
+ ///
+ int Count { get; }
+
+ ///
+ /// Установка максимального количества элементов
+ ///
+ int SetMaxCount { set; }
+
+ ///
+ /// Добавление объекта в коллекцию
+ ///
+ /// Добавляемый объект
+ /// true - вставка прошла удачно, false - вставка не удалась
+ bool Insert(T obj);
+
+ ///
+ /// Добавление объекта в коллекцию на конкретную позицию
+ ///
+ /// Добавляемый объект
+ /// Позиция
+ /// true - вставка прошла удачно, false - вставка не удалась
+ bool Insert(T obj, int position);
+
+ ///
+ /// Удаление объекта из коллекции с конкретной позиции
+ ///
+ /// Позиция
+ /// true - удаление прошло удачно, false - удаление не удалось
+ bool Remove(int position);
+
+ ///
+ /// Получение объекта по позиции
+ ///
+ /// Позиция
+ /// Объект
+ T? Get(int position);
+}
diff --git a/WinFormsAppExcavator/WinFormsAppExcavator/CollectionGenericObjects/MassiveGenericObjects.cs b/WinFormsAppExcavator/WinFormsAppExcavator/CollectionGenericObjects/MassiveGenericObjects.cs
new file mode 100644
index 0000000..bcab8ba
--- /dev/null
+++ b/WinFormsAppExcavator/WinFormsAppExcavator/CollectionGenericObjects/MassiveGenericObjects.cs
@@ -0,0 +1,69 @@
+namespace WinFormsAppExcavator.CollectionGenericObjects;
+///
+/// параметризованный набор объектов
+///
+///
+public class MassiveGenericObjects : ICollectionGenericObjects
+ where T : class
+{
+ ///
+ /// массив объектов, которые храним
+ ///
+ private T?[] _collection;
+ public int Count => _collection.Length;
+
+ public int SetMaxCount
+ {
+ set
+ {
+ if (value > 0)
+ {
+ if (_collection.Length > 0)
+ {
+ Array.Resize(ref _collection, value);
+ }
+ else
+ {
+ _collection = new T?[value];
+ }
+ }
+ }
+ }
+
+ ///
+ /// Конструктор
+ ///
+ public MassiveGenericObjects()
+ {
+ _collection = Array.Empty();
+ }
+
+ public T? Get(int position)
+ {
+ // TODO проверка позиции
+ return _collection[position];
+ }
+
+ public bool Insert(T obj)
+ {
+ // TODO вставка в свободное место набора
+ return false;
+ }
+
+ public bool Insert(T obj, int position)
+ {
+ // TODO проверка позиции
+ // TODO проверка, что элемент массива по этой позиции пустой, если нет, то
+ // ищется свободное место после этой позиции и идет вставка туда
+ // если нет после, ищем до
+ // TODO вставка
+ return false;
+ }
+
+ public bool Remove(int position)
+ {
+ // TODO проверка позиции
+ // TODO удаление объекта из массива, присвоив элементу массива значение null
+ return true;
+ }
+}
diff --git a/WinFormsAppExcavator/WinFormsAppExcavator/FormExcavator.Designer.cs b/WinFormsAppExcavator/WinFormsAppExcavator/FormExcavator.Designer.cs
index 5897aac..9858944 100644
--- a/WinFormsAppExcavator/WinFormsAppExcavator/FormExcavator.Designer.cs
+++ b/WinFormsAppExcavator/WinFormsAppExcavator/FormExcavator.Designer.cs
@@ -122,7 +122,7 @@ namespace WinFormsAppExcavator
//
// buttonStrategyStep
//
- buttonStrategyStep.Location = new Point(790, 48);
+ buttonStrategyStep.Location = new Point(792, 48);
buttonStrategyStep.Name = "buttonStrategyStep";
buttonStrategyStep.Size = new Size(94, 29);
buttonStrategyStep.TabIndex = 8;