diff --git a/ProjectLocomotive/ProjectLocomotive/CollectionGenericObjects/MassiveGenericObjects.cs b/ProjectLocomotive/ProjectLocomotive/CollectionGenericObjects/MassiveGenericObjects.cs index ac8a8f2..cbd8184 100644 --- a/ProjectLocomotive/ProjectLocomotive/CollectionGenericObjects/MassiveGenericObjects.cs +++ b/ProjectLocomotive/ProjectLocomotive/CollectionGenericObjects/MassiveGenericObjects.cs @@ -1,4 +1,5 @@ using ProjectLocomotive.Drawnings; +using ProjectLocomotive.CollectionGenericObjects; namespace ProjectLocomotive.CollectionGenericObjects { @@ -14,7 +15,23 @@ namespace ProjectLocomotive.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 ProjectLocomotive.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 ProjectLocomotive.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 ProjectLocomotive.CollectionGenericObjects } return -1; } + public T Remove(int position) { // TODO проверка позиции // TODO удаление объекта из массива, присвоив элементу массива значение null if (position >= _collection.Length || position < 0) { return null; } - T drawningLocomotive = _collection[position]; + T obj = _collection[position]; _collection[position] = null; - return drawningLocomotive; + return obj; } } }