私はこの2つの方法を持っています
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; }
}
この2つのメソッドは、Nodeクラスだけで機能し、任意のタイプTの任意のヘルプで機能させることができます。