我已经阅读和搜索了,我还没有想出这个相对简单的问题的答案.
我有一节课:
public class AccessibleTreeItem
{
public string name;
public List<AccessibleTreeItem> children;
public AccessibleTreeItem()
{
children = new List<AccessibleTreeItem>();
}
}
Run Code Online (Sandbox Code Playgroud)
这是使用一系列在这种情况下并不重要的函数填充的,但我正在寻找的是一种搜索列表中所有子项,搜索特定"名称"值的方法,以及如果找到,则返回该List.
如何以最简单的方式实现这一目标,性能最低?谢谢 - 我已经被困在这几天了......
Pet*_*nov 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;
}
}
Run Code Online (Sandbox Code Playgroud)