階層オブジェクトリスト内のすべての項目をカウントする方法
質問
私は以下のように定義単純なクラスを持っています
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); }
}
}
それは、サブエントリのの合計の数だけではなく、直接の子ます。です明らかだように、あなたはそれを名前を変更することもできます
所属していません StackOverflow