的情況計算父彙總值如下:如何樹形列表
我有一個樹形列表,其中項目具有4個領域:主鍵,主密鑰,描述和數值。 如果父鍵等於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);
}
}
如果首先'item'是** root **項目? – Prisoner
然後ParentKey將爲'0',並且會返回'item.NumericValue'。 (對於初始調用,將'childSum'傳遞爲'0'。) –
你的描述你的需求,即使目前還不清楚,如果它是一個SQL問題或C#。但是你有什麼嘗試,有什麼問題呢? –
你是什麼意思*計算每個父母的總結值直到根*? –
@TimSchmelter標籤說c#。但是我不知道該怎麼做。我嘗試了嵌套的foreach循環,但沒有成功,這就是爲什麼我問我該怎麼做。 – ArDevTeam