需要以下问题的帮助。我对这个测试失败了,真的想知道答案,这样我可以研究它....使用递归获取父值和子值及其子元素的所有值
假设在金字塔结构中的对象列表(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