private IEnumerable<TreeNode> GetAllNodes(TreeView treeView)
{
Stack<TreeNode> toProcess = new Stack<TreeNode>();
foreach (TreeNode node in treeView.Nodes)
{
toProcess.Push(node);
}
while (toProcess.Count > 0)
{
TreeNode node = toProcess.Pop();
yield return node;
foreach (TreeNode child in node.Nodes)
{
toProcess.Push(child);
}
}
}