Récursive de contrôle de la recherche avec LINQ

Si je voulais trouver coché les cases à cocher sur une ASP.NET la page que je pouvais utiliser la suite d'une requête LINQ.

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

Qui fonctionne très bien si les cases sont imbriqués dans le contrôle en cours de collecte, mais je voudrais savoir comment étendre la recherche par le forage vers le bas dans le contrôle des collections de haut-niveau des contrôles.

La question a été posée ici:

Trouver contrôles qui utilisent une certaine interface dans ASP.NET

Et reçus non-LINQ réponses, j'ai déjà ma propre version d'un circuit de contrôle de la recherche sur le type et l'ID que les méthodes d'extension, mais je me demandais quel point c'est facile à faire dans LINQ?

InformationsquelleAutor PhilGriffin | 2008-10-31