C# 如何在树列表中计算父级的摘要值
情况如下: 我有一个树列表,其中项目有4个字段:主键、父键、描述和一个数值。 如果父键等于0,则它是根。 我只有子项的数值,我需要为每个父项计算一个汇总值,直到根 如何执行此操作?使用递归:C# 如何在树列表中计算父级的摘要值,c#,C#,情况如下: 我有一个树列表,其中项目有4个字段:主键、父键、描述和一个数值。 如果父键等于0,则它是根。 我只有子项的数值,我需要为每个父项计算一个汇总值,直到根 如何执行此操作?使用递归: public int SumRecursive(ClassWithParent item, int childSum) { var currentSum = childSum + item.NumericValue; if (item.ParentKey == 0) { /
public int SumRecursive(ClassWithParent item, int childSum) {
var currentSum = childSum + item.NumericValue;
if (item.ParentKey == 0) {
// finished recursion
return currentSum;
}
else {
// retrieve parrent from DB and call recursivly
var parent = DbContext.ClassWithParent.Find(item.ParentKey);
return SumRecursive(parent, currentSum);
}
}
您已经描述了您的需求,即使还不清楚是sql问题还是C#。但是你尝试过什么,到底是什么问题?你计算每个父项的汇总值直到根是什么意思?@TimSchmelter Tag说c#。但是我不知道怎么做。我尝试使用嵌套的foreach循环,但没有成功,这就是为什么我问如何才能做到这一点。@ArDevTeam:我们只能修复可以看到的代码。除此之外,这些任务应该在数据库中完成。@AlexJolig问题已更新。抱歉,不清楚。如果第一个
项
是根项怎么办?那么ParentKey将是0
和项。将返回NumericValue
。(对于初始调用,将childSum
传递为0
)