Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在树列表中计算父级的摘要值_C# - Fatal编程技术网

C# 如何在树列表中计算父级的摘要值

C# 如何在树列表中计算父级的摘要值,c#,C#,情况如下: 我有一个树列表,其中项目有4个字段:主键、父键、描述和一个数值。 如果父键等于0,则它是根。 我只有子项的数值,我需要为每个父项计算一个汇总值,直到根 如何执行此操作?使用递归: public int SumRecursive(ClassWithParent item, int childSum) { var currentSum = childSum + item.NumericValue; if (item.ParentKey == 0) { /

情况如下:

我有一个树列表,其中项目有4个字段:主键、父键、描述和一个数值。 如果父键等于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