Вы можете добавить к List<CheckBox>
и использовать linq, что-то вроде этого:
List<CheckBox> weekdayCBs;
private void Form_Load(object sender, EventArgs e)
{
weekdayCBs = new List<CheckBox> { MondayCB, TuesdayCB, WednesdayCB, ThursdayCB, FridayCB };
}
private void CheckCBEnabled()
{
WeekDaysP.Enabled = weekdayCB.Count(cb => cb.Checked) >= 3;
}
РЕДАКТИРОВАТЬ: В качестве отступления, и это уже упоминалось в комментариях, вы специально попросили оптимизация , и ваш код близок к оптимальному с точки зрения количества операций (я могу вспомнить пару небольших оптимизаций, но они были бы почти несущественными). Перезапись, подобная приведенной выше, обеспечивает гораздо большую читабельность за счет небольшого объема служебной информации. Как правило, это хорошо, особенно когда речь идет о пользовательских интерфейсах, где незначительные оптимизации не будут замечены пользователем.