using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ProjectBus.CollectionGenericObject; /// /// Класс-хранилище коллекций /// /// 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) { if (name == null || _storages.ContainsKey(name)) { return; } switch (collectionType) { case CollectionType.None: return; case CollectionType.Massive: _storages.Add(name, new MassiveGenericObjects { }); return; case CollectionType.List: _storages.Add(name, new ListGenericObjects { }); return; } } /// /// Удаление коллекции /// /// Название коллекции public void DelCollection(string name) { if (name == null || !_storages.ContainsKey(name)) { return; } _storages.Remove(name); } /// /// Доступ к коллекции /// /// Название коллекции /// public ICollectionGenericObjects? this[string name] { get { if (name == null || !_storages.ContainsKey(name)) { return null; } return _storages[name]; } } }