Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在TreeView C中仅查找子节点#_C#_Winforms_Treeview - Fatal编程技术网

C# 在TreeView C中仅查找子节点#

C# 在TreeView C中仅查找子节点#,c#,winforms,treeview,C#,Winforms,Treeview,我有下面的树 A +-B +-C | +-D | +-E +-F +-G +-H 我正试图找到B,D,E,G,H。 排除具有树的节点,只保留其子节点。您可以在树节点列表中递归收集子节点: List<TreeNode> children = new List<TreeNode>(); foreach(TreeNode node in TV.Nodes) collectChildren(node); void collectChildren(TreeN

我有下面的树

A
+-B
+-C 
| +-D
| +-E
+-F
  +-G
  +-H
我正试图找到
B,D,E,G,H

排除具有树的节点,只保留其子节点。

您可以在树节点列表中递归收集子节点:

 List<TreeNode> children = new List<TreeNode>();

 foreach(TreeNode node in  TV.Nodes) collectChildren(node);

 void collectChildren(TreeNode node)
 {
    if (node.Nodes.Count == 0) children.Add(node) 
    else  foreach(TreeNode n in node.Nodes) collectChildren(n);
 }
List children=new List();
foreach(TV.Nodes中的TreeNode节点)收集子节点(node);
无效子节点(TreeNode节点)
{
如果(node.Nodes.Count==0)子项。添加(node)
else foreach(node.Nodes中的树节点n)收集子节点(n);
}