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