(это еще один подход к упрощению)
Да, словари - это простые коллекции, но это не совсем то, что я ожидаю. Я хочу что-то сказать: «Это значение из перечисления истинно, это ложно»
Это звучит так, что вам нужен хороший класс, который инкапсулирует менее простую или более низкоуровневую структуру (например, словарь или хэшсет). Это будет легко с внешней стороны / API-isde.
Например:
public enum Spell
{
Firebolt,
Rage,
Flash,
};
public class SpellState
{
private HashSet<Spell> _enabled = new HashSet<Spell>();
public void EnableSpell(Spell spell)
{
_enabled.Add(spell);
}
public void DisableSpell(Spell spell)
{
_enabled.Remove(spell);
}
public bool IsSpellEnabled(Spell spell)
{
return _enabled.Contains(spell);
}
}
Использование
var spellState = new SpellState();
spellState.EnableSpell(Spell.Rage);
// later
if (spellState.IsSpellEnabled(Spell.Flash))
{
spellState.DisableSpell(Spell.Rage);
// todo
}