private static void InnerSearchInsideChild(Predicate <TreeNodeViewModel> predicate, bool searchAllChildren, List <TreeNodeViewModel> results, TreeNodeViewModel child) { if (predicate(child)) { results.Add(child); } else { child.InnerFinding(predicate, searchAllChildren, results); } }