递归搜索嵌套列表

我已经阅读并搜索了,我还没有想出这个相对简单的问题的答案。

我上课了:

public class AccessibleTreeItem { public string name; public List children; public AccessibleTreeItem() { children = new List(); } } 

这是使用一系列在这种情况下并不重要的函数填充的,但我正在寻找的是一种搜索列表中所有子项,搜索特定“名称”值的方法,以及如果找到,返回该列表。

如何以最简单的方式实现这一目标,性能最低? 谢谢 – 我已经被困在这几天了……

 public class AccessibleTreeItem { public string name; public List children; public AccessibleTreeItem() { children = new List(); } public static AccessibleTreeItem Find(AccessibleTreeItem node, string name) { if (node == null) return null; if (node.name == name) return node; foreach (var child in node.children) { var found = Find(child, name); if (found != null) return found; } return null; } }