private void RemoveEmptyNodes(CategoryNode cur) { for (int i = 0; i < cur.Nodes.Count; ++i) { CategoryNode c = cur.Nodes[i]; if (c.Problems.Count == 0) { c.Delete(); --i; } else { RemoveEmptyNodes(c); } } }