Поскольку вы на самом деле не используете словарь для поиска, а просто для хранения и итерации, вместо использования Dictionary<K,V>
, вы можете просто использовать List<KeyValuePair<K,V>>
.
Основное отличие с точки зрения кода будет меняться. Добавить к:
methodList.Add(new KeyValuePair<bool, Action>(parameters.AddSection1, this.Section1));
Затем при использовании переключитесь на:
foreach (var entry in methodList)
{
// if the switch is on
// call the method
if (entry.Key)
entry.Value(); // Execute "value" directly
}
При этом вы можете сделать еще один шаг, потенциально, и просто сохранить List<Action>
напрямую. Добавляйте только действия в список, где условие выполняется, затем выполняйте их все.