private static bool FilterNode(TreeNode n, Func<TreeNode, bool> filterFunc) { bool result = filterFunc(n); if (!result) { foreach (TreeNode node in n.Nodes) { result = FilterNode(node, filterFunc); if (result) { break; } } } return result; }