递归搜索嵌套列表
我已经阅读并搜索了,我还没有想出这个相对简单的问题的答案。
我上课了:
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; } }