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?

questionAnswers(3)

yourAnswerToTheQuestion