0

2つのクラスがあるとしましょう:

public Foo
{
   public List<Foo> Childs { get; set; }
   public Bar BarObj { get; set; }
   public int Level { get; set; }
}

public Bar
{
   public List<Foo> Childs { get; set; }
}

「Foo」オブジェクトのコレクションからネストレベルを取得したい

私の現在の作業方法は次のようになります。

int currentLevel = 0;
public void ApplyNestingLevel(List<Foo> list)
{
    foreach(var item in list)
    {
        item.Level = currentLevel;
        if(item.Childs.Count > 0 || item.BarObj.Childs.Count > 0)
        {
            currentLevel++;
        }
        ApplyNestingLevel(item.Childs);
        ApplyNestingLevel(item.BarObj.Childs);
    }
}

これをより「エレガント/シンプル」にするにはどうすればよいですか?

4

2 に答える 2