我有一個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
方法用於填充樹結構設置節點名稱和類型的每個節點(例如該第一個節點將被設置爲根類型,並且子節點可以是Element或Category類型)。
我正在尋找一種有效的方法(可能使用LINQ)來修剪樹枝的結尾節點類型不是類型的類別。任何想法如何實現?
這裏視覺例如:
以前:
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)
提前感謝!
你想從葉節點修剪多少層? –
我用我想要的視覺表示更新了問題。基本上修剪從根的整個分支,如果它不以類別 –
+1結束一個有趣的/有趣的問題...不需要指定LINQ,但人們應該給你解答你的問題的答案。 – Crisfole