using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ProjectStormtrooper.CollectionGenericObjects; /// /// Класс-хранилище коллекций /// /// public class StorageCollection where T : class { /// /// Словарь(хранилище) с коллекциями /// readonly Dictionary> _storages; /// /// Возвращение списка названий коллекций /// public List Keys => _storages.Keys.ToList(); /// /// Конструктор /// public StorageCollection() { _storages = new Dictionary>(); } /// /// Добавление коллекции в хранилище /// /// Название коллекции /// Тип коллекции public void AddCollection(string name, CollectionType collectionType) { // TODO проверка, что name не пустой и нет в словаре записи с таким ключом // TODO Прописать логику для добавления if (!(collectionType == CollectionType.None) && !_storages.ContainsKey(name)) { if (collectionType == CollectionType.List) { _storages.Add(name, new ListGenericObjects()); } else if (collectionType == CollectionType.Massive) { _storages.Add(name, new MassiveGenericObjects()); } } } /// /// Удаление коллекции /// /// Название коллекции public void DelCollection(string name) { // TODO Прописать логику для удаления коллекции if (_storages.ContainsKey(name)) { _storages.Remove(name); } } /// /// Доступ к коллекции /// /// /// public ICollectionGenericObjects? this[string name] { get { // TODO Продумать логику получения объекта if (_storages.ContainsKey(name)) return _storages[name]; return null; } } }