Foreach无法在方法组上运行

时间:2011-10-25 13:47:21

标签: asp.net treeview foreach

private void PrintRecursive(TreeNode treeNode)
    {
        foreach (TreeNode tn in treeNode.Nodes)
        {
            PrintRecursive(tn);
        }
    }

我收到错误:Foreach无法对方法组进行操作。您打算调用'方法组'吗?

3 个答案:

答案 0 :(得分:12)

这里的问题是Nodes是一个方法,但你用作属性:) 所以这行代码

foreach (TreeNode tn in treeNode.Nodes)

应该是

foreach (TreeNode tn in treeNode.Nodes())

答案 1 :(得分:6)

假设您正在使用打包的TreeView控件,那么它不应该是ChildNodes吗?:

foreach (TreeNode node in treeNode.ChildNodes) ...

答案 2 :(得分:1)

TreeView.Nodes给出了一组TreeNode对象,它们代表TreeView控件中的根节点。

要访问根节点的子节点,请使用节点的ChildNodes属性。

e.g。使用for循环

void  PrintRecursive(TreeNode node)
{
  for(int i=0; i <node.ChildNodes.Count; i++)
  {
    PrintRecursive(node.ChildNodes[i]);
  }
}

或使用foreach

void  PrintRecursive(TreeNode node)
{
  foreach(TreeNode node in node.ChildNodes)
  {
    PrintRecursive(node);
  }
}