4

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

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

在另一堂课中,我有一个上述类型的列表。目前,我有严重的精神障碍。我只需要遍历列表并计算 MyClass 的所有出现次数。由于 SubEntries 属性可以包含 0 个或多个条目,而这些条目本身可以包含 0 个或多个条目,我觉得我需要某种递归方法,除非 LINQ 提供了一种机制来执行此操作。

任何释放这种心理日志堵塞的帮助将不胜感激。

4

1 回答 1

11

假设您不介意沿树递归,并假设列表始终为非空且没有循环:

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

    public int SubEntryCount
    {
        get { return 1 + SubEntries.Sum(x => x.SubEntryCount); }
    }
}

您可能想要重命名它,以便清楚它是子条目的总数,而不仅仅是直系子条目。

于 2009-05-28T14:55:05.940 回答