我已经阅读并搜索了,我还没有想出这个相对简单的问题的答案。
我有一个班级:
public class AccessibleTreeItem
{
public string name;
public List<AccessibleTreeItem> children;
public AccessibleTreeItem()
{
children = new List<AccessibleTreeItem>();
}
}
使用一系列在此上下文中并不重要的函数进行填充,但我正在寻找的是一种搜索列表中所有子项,搜索特定“名称”的方法value,如果找到,则返回该List。
如何以最简单的方式实现这一目标,性能最低?谢谢 - 我已经被困了好几天了......
答案 0 :(得分:14)
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;
}
}