Вы можете копать в ящик для инструментов Linq.Есть несколько методов, которые работают с IEnumerable, и, поскольку ControlsCollection реализует этот интерфейс, вы можете использовать их непосредственно в коллекции.Один из методов очень хорошо подходит для ваших нужд.Метод расширения OfType<TResult>()
выполняет итерацию коллекции и возвращает только те элементы, которые имеют предоставленный тип.
, чтобы получить все флажки, которые вы могли бы сделать следующим образом:
var checkboxes = panelLocalita.Controls.OfType<CheckBox>();
и выЗатем можно выполнить итерацию через foreach, если вы хотите получить побочные эффекты, такие как установка для всех отмеченных
foreach(var checkBox in checkboxes)
{
checkBox.Checked = true;
}
, или если вам нужно получить от них информацию, вы можете использовать другие инструменты из набора инструментов Linq, например,Вы хотели получить только те, которые отмечены:
checkboxes.Where(c=>c.Checked)
или проверить, что все отмечены
checkboxes.All(c=>c.Checked)