我喜欢选择其文本与某些搅拌值匹配的节点,这样我就可以使用一个递归方法
private TreeNode GetSelectedNodes(TreeNode treeNode)
{
TreeNode result=new TreeNode();
foreach (TreeNode node in treeNode.Nodes)
{
if (node.Text=="Child1")
{
result=node;
break;
}
else
if (node.Nodes.Count > 0)
{
this.GetSelectedNodes(node);
}
}
return result;
}
在上面的代码中,节点文本中的一个匹配到" Child1"但它没有返回节点而是再次调用this.GetSelectedNodes(node); 请告诉我这段代码有什么问题。
答案 0 :(得分:3)
trythis
private TreeNode GetSelectedNodes(TreeNode treeNode)
{
foreach (TreeNode node in treeNode.Nodes)
{
if (node.Text=="Child1")
{
return node;
}
else
{
if (node.Nodes.Count > 0)
{
var result = this.GetSelectedNodes(node);
if(result != null)
{
return result;
}
}
}
}
return null;
}
答案 1 :(得分:-1)
试试这种方式。您找到后返回节点,并一直返回
private TreeNode GetSelectedNodes(TreeNode treeNode)
{
TreeNode result=new TreeNode();
foreach (TreeNode node in treeNode.Nodes)
{
if (node.Text=="Child1")
{
result=node;
return result;
}
else if (node.Nodes.Count > 0)
{
return this.GetSelectedNodes(node);
}
}
}