Поиск рекурсивного контроля с помощью LINQ

Если бы я хотел найти флажки на странице ASP.NET, я мог бы использовать следующий запрос LINQ.

var checkBoxes = this.Controls
                     .OfType<CheckBox>()
                     .TakeWhile<CheckBox>(cb => cb.Checked);

Это прекрасно работает, если флажки вложены в текущую коллекцию элементов управления, но я хотел бы знать, как расширить поиск, углубившись в наборы элементов управления элементов верхнего уровня.

Вопрос был задан здесь:

Поиск элементов управления, которые используют определенный интерфейс в ASP.NET

Получив ответы, не относящиеся к LINQ, у меня уже есть собственная версия рекурсивного поиска по типу и идентификатору в качестве методов расширения, но я просто удивился, насколько легко это сделать в LINQ?

Ответы на вопрос(3)

Ваш ответ на вопрос