递归搜索嵌套列表
本文关键字:列表 嵌套 搜索 递归 | 更新日期: 2023-09-27 18:01:00
我已经阅读并搜索过了,还没有找到这个相对简单的问题的答案。
我有一门课:
public class AccessibleTreeItem
{
public string name;
public List<AccessibleTreeItem> children;
public AccessibleTreeItem()
{
children = new List<AccessibleTreeItem>();
}
}
它使用一系列在本文中并不重要的函数来填充,但我正在寻找一种方法来搜索列表中的所有子项,搜索特定的"name"值,如果找到,则返回该列表。
如何以最简单的方式实现这一点,同时对性能的影响最小?谢谢——我已经在这一点上被难住了好几天了。。。
public class AccessibleTreeItem
{
public string name;
public List<AccessibleTreeItem> children;
public AccessibleTreeItem()
{
children = new List<AccessibleTreeItem>();
}
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;
}
}