计算分层对象列表中所有项目的方法
我有一个简单的类定义为:
public class MyClass
{
//Some properties
public List<MyClass> SubEntries { get; set; }
//Some more properties
}
在另一个类中我有一个上述类型的列表。 现在我的心理有很严重的障碍。 我只需要遍历列表并计算 MyClass 的所有出现次数。 由于 SubEntries 属性可以包含 0 个或多个条目,而这些条目本身也可以包含 0 个或多个条目,因此我突然意识到我需要某种递归方法,除非 LINQ 提供了一种机制来执行此操作。
任何帮助释放这种心理日志堵塞的帮助将不胜感激。
I've got a simple class defined as:
public class MyClass
{
//Some properties
public List<MyClass> SubEntries { get; set; }
//Some more properties
}
In another class I have a list of the above type. At the moment, I'm having a serious mental block. I just need to itereate through the list and count all occurances of MyClass. Since the SubEntries property can contain 0 or more entries which can themselves contain 0 or more entries, it strikes me that I need some sort of recursice method, unless LINQ provides a mechanism to do this.
Any help releasing this mental log jam would be appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
假设您不介意在树上递归,并假设列表始终为非空且没有循环:
您可能需要重命名它,以便清楚地显示它是 sub 的总数 -条目,不仅仅是直系子项。
Assuming you don't mind recursing down the tree, and assuming the list is always non-null and doesn't have cycles:
You may want to rename it so that it's clear it's a total count of sub-entries, not just immediate children.