首页 > 代码库 > 循环递归+返回值(TreeView示例)
循环递归+返回值(TreeView示例)
示例:获取TreeView的所有Node,保存到List<TreeNode>,封装到通用工具类:
方法一:使用static方法、属性---调用前清空static类型的List
1 public static List<TreeNode> allNodes = null; 2 public static void GetTreeViewAllNodes(TreeNodeCollection Nodes) 3 { 4 foreach (TreeNode node in Nodes) 5 { 6 allNodes.Add(node); 7 if (node.ChildNodes.Count > 0) 8 { 9 GetTreeViewAllNodes(node.ChildNodes);10 }11 }12 }13 public static List<TreeNode> GetNodes(TreeView tv)14 {15 GetTreeViewAllNodes(tv.Nodes);16 return allNodes;17 }
注意:如果使用static类型的List,每次调用该通用工具类之前需要清空List<TreeNode>,否则会出现叠加。在构造函数中清空:
public Tools(){ allNodes.Clear(); }
方法二、使用内部方法、属性---直接调用
1 public List<TreeNode> allNodes = new List<TreeNode>(); 2 public void GetTreeViewAllNodes(TreeNodeCollection Nodes) 3 { 4 foreach (TreeNode node in Nodes) 5 { 6 allNodes.Add(node); 7 if (node.ChildNodes.Count > 0) 8 { 9 GetTreeViewAllNodes(node.ChildNodes);10 }11 }12 }13 public List<TreeNode> GetNodes(TreeView tv)14 {15 GetTreeViewAllNodes(tv.Nodes);16 return allNodes;17 }
疑问:能不能使用一个方法既可以实现循环遍历,又可以获得返回值???
循环递归+返回值(TreeView示例)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。