我有一個帶有附加到每個節點的物件串列的樹視圖控制元件。選擇節點后,我想知道所選節點及其所有子節點的物件總數。
遞回函式按預期遍歷樹,但我沒有正確聚合總和。它只添加當前節點和下一級子節點的值。
我確定我的代碼中的最后一行不正確(回傳 n.Maps.Count),但如果層次結構比一個級別更深,我不知道如何聚合這些值。
感謝任何幫助。問候克里斯
private void CallingFunction()
{
.... <some unrelated code> ...
foreach (GeoSchemeTreeNode n in node.Nodes)
{
xx = AddTotal(n);
}
Console.WriteLine($"total={xx});
}
private int AddTotal(GeoSchemeTreeNode n)
{
foreach (GeoSchemeTreeNode i in n.Nodes)
{
AddTotal(i);
}
return n.Maps.Count;
}
uj5u.com熱心網友回復:
您的問題似乎是您實際上并未存盤和匯總遞回的乘積。
固定方法應如下所示:
private int AddTotal(GeoSchemeTreeNode n)
{
int total = n.Maps.Count;
foreach (GeoSchemeTreeNode i in n.Nodes)
{
total = AddTotal(i);
}
return total;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/395429.html
