[英]Iterate through child to parent
我正在從以下查詢中獲取數據,
var targetItems = await _dbContext.TargetItems
.Include(ti => ti.BranchTargetItem)
.ThenInclude(bti => bti.BranchTarget)
.ToListAsync(cancellationToken);
我需要找到一種方法來對樹中從底部到頂部的值求和。 必須對它自己的第一級子值分別求和,就像我在下面評論的那樣,
targetItems = {
"item":"A",
"values":14, << sum of B + C values
"childs":[
{
"item":"B",
"values":2,
"childs":[]
},
{
"item":"C", << sum of D + E + H values
"values":12,
"childs":[
{
"item":"D",
"values":5,
"childs":[]
},
{
"item":"E",
"values":4, << sum of F + G values
"childs":[
{
"item":"F",
"values":2,
"childs":[]
},
{
"item":"G",
"values":2,
"childs":[]
}
]
},
{
"item":"H",
"values":3,
"childs":[]
}
]
}
]
}
無法在此處發布任何代碼,因為我什至還沒有接近解決方案。
int SetSumOfChildren(object node){
if(!(node.childs?.Any() ?? false)){
node.values = node.values ?? 0;
}
else {
int sum = 0;
foreach(var n in node.childs){
sum += SetSumOfChildren(n);
}
node.values = sum;
}
return node.values;
}
SetSumOfChildren(data);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.