我有这两种方法
public static void NavigateAndExecute(Node root, Action<Node> actionToExecute)
{
if (root == null || root.Children == null || root.Children.Count == 0)
return;
actionToExecute(root);
foreach (var node in root.Children)
{
actionToExecute(node);
NavigateAndExecute(node, actionToExecute);
}
}
public static void NavigateAndExecute(List<Node> root, Action<Node> actionToExecute)
{
if (root == null || root.Count == 0)
return;
foreach (var node in root)
{
NavigateAndExecute(node, actionToExecute);
}
}
节点类是
public class Node
{
public String Name { get; set; }
public List<Node> Children { get; set; }
}
这两个方法只适用于 Node 类,可以使它们适用于任何类型的 T 任何帮助。