public TypeCodeNode addSubNode(String code, String name) { TypeCodeNode subNode = new TypeCodeNode(); subNode.code = code; subNode.name = name; this.subNodes.Add(subNode); return subNode; }
public List<TypeCodeNode> getNodeByLevel(TypeCodeNode node, int level) { List<TypeCodeNode> all = new List<TypeCodeNode>(); foreach (TypeCodeNode subnode in node.subNodes) { if (subnode.code.Length == level) { all.Add(subnode); } if (subnode.code.Length < level) { List<TypeCodeNode> allSubNode = getNodeByLevel(subnode,level); all.AddRange(allSubNode); } } return all; }
public TypeCodeNode getSubNodeByName(TypeCodeNode node, string name) { foreach (TypeCodeNode subnode in node.subNodes) { if (String.Compare(subnode.name, name) == 0) { return subnode; } TypeCodeNode subNode = getSubNodeByName(subnode, name); if (subNode != null) { return subNode; } } return null; }
public List<TypeCodeNode> getAllSubNode(TypeCodeNode node) { List<TypeCodeNode> all = new List<TypeCodeNode>(); foreach (TypeCodeNode subnode in node.subNodes) { all.Add(subnode); List<TypeCodeNode> allSubNode = getAllSubNode(subnode); all.AddRange(allSubNode); } return all; }