質問

私は以下のように定義単純なクラスを持っています

public class MyClass
{
   //Some properties
   public List<MyClass> SubEntries { get; set; }
   //Some more properties
}

別のクラスでは、私は上記のタイプのリストを持っています。現時点では、私は深刻な精神的なブロックを持っています。私はちょうどリストをitereateとMyClassのすべての回出てくるカウントする必要があります。サブエントリのプロパティ自体は0以上のエントリを含めることができます0以上のエントリを含めることができるので、それはLINQでこれを行うためのメカニズムを提供しない限り、私は、recursice方法のいくつかの並べ替えを必要とすることを私を打つます。

この精神ログジャムを解放する任意の助けいただければ幸います。

役に立ちましたか?

解決

あなたは木をダウン再帰気にしないと仮定すると、リストと仮定すると、常に非nullで、サイクルを持っていません。

public class MyClass
{
    public List<MyClass> SubEntries { get; set; }

    public int SubEntryCount
    {
        get { return 1 + SubEntries.Sum(x => x.SubEntryCount); }
    }
}
それは、サブエントリのの合計の数だけではなく、直接の子ます。

です明らかだように、

あなたはそれを名前を変更することもできます

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top