我有一TreeNode
堂课如下:
public class TreeNode
{
public enum NodeType { Root,Element, Category}
public TreeNode()
{
Children = new List<TreeNode>();
}
public List<TreeNode> Children { get; set; }
public string Name { get; set; }
public NodeType Type { get; set; }
}
我有一个BuildTree
填充树结构的方法,为每个节点设置节点名称和类型(例如,第一个节点将设置为根类型,子节点可以是元素或类别类型)。
我正在寻找一种有效的方法(可能使用 LINQ)来修剪结束节点类型不是 Category 类型的树枝。关于如何实现这一目标的任何想法?
这是一个视觉示例:
之前:
Root
|
|_ NodeA (Element)
|_ Node B (Element)
| |_ Node B.1 (Category)
|_ Node C (Element)
| |_ Node C.1 (Element)
| |_Node C.1.1 (Category)
|_ Node D (Element)
|_Node D.1 (Element)
之后:
Root
|
|_ Node B (Element)
| |_ Node B.1 (Category)
|_ Node C (Element)
|_ Node C.1 (Element)
|_Node C.1.1 (Category)
提前致谢!