Вы можете вырезать все петли foreach
, используя Linq's Select()
:
Например:
var DesignStatusList =
cboDesignStatus.CheckBoxItems
.Where(x => x.Checked)
.Select(i => i.Text)
.ToList();
Это оставит вас сList<string>
содержит все свойства Text
из отмеченных флажков.
Вы можете даже пропустить объявление списка и объединить его с вашими строками DataTable
:
var designStatusParameters = ToStringDataTable(
cboDesignStatus.CheckBoxItems
.Where(x => x.Checked)
.Select(i => i.Text)
.ToList());
Я быпредложите поместить это в собственный метод, а не повторять это снова и снова для каждой группы флажков.
Просто имейте в виду, что меньшее количество строк кода не означает более высокую производительность.По-прежнему приходится перебирать списки, чтобы найти правильные значения.Но это гораздо удобнее для чтения, чем удар по лицу стеной повторяющегося кода.