標籤:des style blog io ar color 使用 sp for
樣本:擷取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樣本)