public System.Windows.Forms.TreeNodeCollection EnumFolders() { var nodes = new System.Windows.Forms.TreeNode(); object[] paths = new object[] { new object[] { "FolderA", new [] { "1", "11" } }, new object[] { "FolderB", new [] { "2", "21", "211" } }, new object[] { "FolderC", new [] { "1", "11", "112" } }, new object[] { "FolderD", new [] { "2", "22", "221" } } }; for (int p = 0; p < paths.Length; p++) { System.Windows.Forms.TreeNode node = nodes; var obj = (object[])paths[p]; for (int f = ((string[])obj[1]).Length - 1; f != -1; f--) { node = Func.AddTreeNode(node, ((string[])obj[1])[f]); } Func.AddTreeNode(node, (string)obj[0]); } return(nodes.Nodes); }