From 2fd3db0774756b8d15c1a2dff92f1bfb04b4d000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC?= Date: Thu, 16 May 2024 10:28:53 +0400 Subject: [PATCH] fj --- .../MassiveGenericObjects.cs | 35 ++++++++++++++----- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/ProjertTrain/ProjertTrain/CollectionGenericObjects/MassiveGenericObjects.cs b/ProjertTrain/ProjertTrain/CollectionGenericObjects/MassiveGenericObjects.cs index 6a86fea..8e845db 100644 --- a/ProjertTrain/ProjertTrain/CollectionGenericObjects/MassiveGenericObjects.cs +++ b/ProjertTrain/ProjertTrain/CollectionGenericObjects/MassiveGenericObjects.cs @@ -1,4 +1,5 @@ using ProjectTrain.Drawnings; +using ProjectTrain.CollectionGenericObjects; namespace ProjectTrain.CollectionGenericObjects { @@ -14,7 +15,23 @@ namespace ProjectTrain.CollectionGenericObjects /// private T?[] _collection; public int Count => _collection.Length; - public int SetMaxCount { set { if (value > 0) { _collection = new T?[value]; } } } + public int SetMaxCount + { + set + { + if (value > 0) + { + if (_collection.Length > 0) + { + Array.Resize(ref _collection, value); + } + else + { + _collection = new T?[value]; + } + } + } + } /// /// Конструктор @@ -27,11 +44,10 @@ namespace ProjectTrain.CollectionGenericObjects { // TODO проверка позиции if (position >= _collection.Length || position < 0) - { - return null; - } + { return null; } return _collection[position]; } + public int Insert(T obj) { // TODO вставка в свободное место набора @@ -43,16 +59,18 @@ namespace ProjectTrain.CollectionGenericObjects _collection[index] = obj; return index; } + index++; } return -1; } + public int Insert(T obj, int position) { // TODO проверка позиции // TODO проверка, что элемент массива по этой позиции пустой, если нет, то - // ищется свободное место после этой позиции и идет вставка туда - // если нет после, ищем до + // ищется свободное место после этой позиции и идет вставка туда + // если нет после, ищем до // TODO вставка if (position >= _collection.Length || position < 0) { return -1; } @@ -83,15 +101,16 @@ namespace ProjectTrain.CollectionGenericObjects } return -1; } + public T Remove(int position) { // TODO проверка позиции // TODO удаление объекта из массива, присвоив элементу массива значение null if (position >= _collection.Length || position < 0) { return null; } - T drawningTrain = _collection[position]; + T obj = _collection[position]; _collection[position] = null; - return drawningTrain; + return obj; } } }