using AntiAircraftGun.CollectionGenereticObject; namespace AntiAircraftGun.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) { if (_storages.ContainsKey(name)) return; if (collectionType == CollectionType.None) return; else if (collectionType == CollectionType.Massive) _storages[name] = new MassiveGenericObjects(); else if (collectionType == CollectionType.List) _storages[name] = new ListGenericObjects(); } /// /// Удаление коллекции /// /// Название коллекции public void DelCollection(string name) { if (_storages.ContainsKey(name)) _storages.Remove(name); } /// /// Доступ к коллекции /// /// Название коллекции /// public ICollectionGenericObjects? this[string name] { get { if (_storages.ContainsKey(name)) return _storages[name]; return null; } } }