public IEnumerable<CategoryTreeNode> Desendants() { foreach (var category in Categories) { yield return category; foreach (var descendant in category.Descendants()) { yield return descendant; } } }