无法中断foreach循环
本文关键字:循环 foreach 中断 | 更新日期: 2023-09-27 18:27:16
我喜欢选择一个节点,在这个节点上,它的文本与一些stiring值匹配
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;
}
在上面的代码中,一个节点Text匹配"Child1",但它没有返回节点,而是再次调用它。GetSelectedNodes(节点);请告诉我这个代码出了什么问题。
尝试此
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;
}
试试这种方法。一旦找到,就返回节点,并一直向上返回
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);
}
}
}