我有定义为一个简单的类:

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

在另一个I类具有上述类型的一个列表。目前,我有严重的心理障碍。我只需要在列表中itereate和计数的MyClass所有出现。由于子条目属性可以包含0或多个条目可本身包含0或多个条目,这让我感到我需要某种recursice方法,除非LINQ提供了一种机制,以做到这一点。

任何释放这个心理日志果酱帮助将不胜感激。

有帮助吗?

解决方案

假设你不介意递归下降树,并假设该列表总是非空,没有循环:

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