.NET 2.x Найти все конечные элементы рекурсивного списка используя Linq - C#
Формулировка задачи:
Есть список List<Node>,
Node содержит List<Node> Nodes,
Нужно найти все Nodes где Count>0
Понятно, что можно функцию рекурсивную написать, может у кого есть идеи как с помощью Linq это сделать?
Решение задачи: «.NET 2.x Найти все конечные элементы рекурсивного списка используя Linq»
textual
Листинг программы
public IEnumerable<Node> AllNodes(Node start)
{
Queue<Node> qe = new Queue<Node>();
qe.Enqueue(start);
while (qe.Count > 0)
{
var fst = qe.Dequeue();
yield return fst;
foreach (Node nd in fst.Children) qe.Enqueue(nd);
}
}