0

我为 Web 应用程序创建了一个动态树。我的树结构如下:

id     name     pid     data1     data2

1      Item1    0 

2      Item2    1       70        45

3      Item3    0   

4      Item3    1       56        48

3      Item3    3       34        48
 ........

父节点不包含 data1 和 data2 的任何值。我已经为树创建了递归列表。但现在我需要做的是将所有子节点的 data1 和 data2 的值显示为父节点中 data1 和 data2 的值。

树是多级的。如何将其子节点的值添加到每个父节点?我正在使用 C# 顺便说一句。谢谢

更新:

 public class MyTree
{
    public MyTree()
    {
        children = new List<MyTree>();
    }
    public int id { get; set; }
    public string data { get; set; }
    public int pid { get; set; }
    public decimal? data1 { get; set; }
    public decimal? data2 { get; set; }            
    public IList<MyTree> children { get; set; }
}
4

1 回答 1

1

如果设置了以下成员变量/更新的属性对,则将给出显式值,如果未设置,则将给出所有子值的递归总和:

private decimal? _data1;
public decimal? data1
{
    get
    {
        if (_data1.HasValue)
            return _data1;
        // This needs System.Linq but can be done manually.
        return children.Sum(c => c.data1);
    }
    set { _data1 = value; }
}

(同样适用于data2。)

它不会阻止您在具有子元素的元素上显式设置值。

于 2013-02-11T12:23:13.753 回答