我有一个简单的类定义为:
public class MyClass
{
//Some properties
public List<MyClass> SubEntries { get; set; }
//Some more properties
}
在另一个班级,我有一个上述类型的列表。目前,我有一个严重的心理障碍。我只需要遍历列表并计算MyClass的所有出现次数。由于SubEntries属性可以包含0个或多个条目,这些条目本身可以包含0个或更多条目,因此我需要某种recursice方法,除非LINQ提供了执行此操作的机制。
任何帮助解除这种精神记录的问题都将受到赞赏。
答案 0 :(得分:11)
假设您不介意递归树,并假设列表始终为非null且没有循环:
public class MyClass
{
public List<MyClass> SubEntries { get; set; }
public int SubEntryCount
{
get { return 1 + SubEntries.Sum(x => x.SubEntryCount); }
}
}
你可能想要重命名它,以便明确它是总子条目的数量,而不仅仅是直接的孩子。