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 に答える