需要以下問題的幫助。我對這個測試失敗了,真的想知道答案,這樣我可以研究它....使用遞歸獲取父值和子值及其子元素的所有值
假設在金字塔結構中的對象列表(C#)具有以下屬性:
- ID
- 名稱
- 值
- parentId的
實施例(C#):
var b = new block();
b.id = 100;
b.name = "block 100"
b.value = 102.50;
b.parentid = 99;
編寫一個遞歸函數,該函數接受一個ID作爲唯一參數,並將遍歷數組或未定尺寸和數量級別的列表。遞歸函數將計算
block block1 = new block(1, null, "block 1", 11.34M);
block block11 = new block(11, 1, "block 11", 234.34M);
block block111 = new block(111, 11, "block 111", 111);
block block12 = new block(12, 1, "block 12", 564);
block block13 = new block (13, 1, "block 13", 342.23M);
block block131 = new block(131, 13, "block 131", 945);
block block132 = new block(132, 13, "block 132", 10M);
block block133 = new block(133, 13, "block 133", 88M);
block block1331 = new block(1331, 133, "block 1331", 45);
block block2 = new block(2, null, "block 2", 234);
block block3 = new block(3, null, "block 3", 1249.34M);
blocks = new List<block>();
blocks.Add(block1);
blocks.Add(block11);
blocks.Add(block111);
blocks.Add(block12);
blocks.Add(block13);
blocks.Add(block131);
blocks.Add(block132);
blocks.Add(block133);
blocks.Add(block1331);
blocks.Add(block2);
blocks.Add(block3);
decimal sum = SumAll(1);
Console.WriteLine(sum);
Console.ReadKey();
}
我需要的功能,讓我從父母和所有的孩子和孩子的孩子的「價值」財產共有「值」。誰能幫忙?
public class block
{
public block() { }
public block(int id, int? parentid, string name, decimal value)
{
this.id = id;
this.parentid = parentid;
this.name = name;
this.value = value;
}
public int id { get; set; }
public int? parentid { get; set; }
public string name { get; set; }
public decimal value { get; set; }
}
你可以[編輯]你的問題;不要嘗試在評論中粘貼代碼。 – Blorgbeard
另外:你需要問一個更具體的問題。 「請從我的複製+粘貼規範中實施此程序」不是問題。你寫的代碼有什麼問題?發佈你的嘗試,並準確解釋它的不正確。 – Blorgbeard
看起來像你沒有完成你的問題... – mmcrae