public void ForEach(Action<CategoryTreeNode> action) { foreach (var root in Categories) { action(root); foreach (var descendant in root.Descendants()) { action(descendant); } } }