Pesquisa de controle recursivo com LINQ
Se eu quisesse encontrar caixas de seleção marcadas em uma página ASP.NET, poderia usar a seguinte consulta LINQ.
var checkBoxes = this.Controls
.OfType<CheckBox>()
.TakeWhile<CheckBox>(cb => cb.Checked);
Isso funciona bem se as caixas de seleção estiverem aninhadas na coleção de controle atual, mas eu gostaria de saber como estender a pesquisa detalhando as coleções de controle dos controles de nível superior.
A pergunta foi feita aqui:
Localizando controles que usam uma certa interface no ASP.NET
E recebi respostas que não são do LINQ, eu já tenho minha própria versão de uma pesquisa de controle recursivo no tipo e ID como métodos de extensão, mas me perguntei o quão fácil isso é fazer no LINQ?