LINQ:在分层对象中选择“Deep”?选择拥有相同父级的所有孩子?

时间:2011-02-10 03:49:48

标签: linq linq-to-objects

有人可以帮忙吗?

我目前有一个名为Member的类文件,它存储一个对象引用和它的父对象引用。然后我有一个包含“很多”成员的LIST。它真的像一个平面文件系统,但它与linq很好用,因为我可以看到给我所有具有X父级的子节点。使用Parent属性的Object引用字段。

现在我正在考虑重新创建我的类文件并添加一个新字段,该字段将保存Member的LIST并删除Parent属性 - 这样我只有1个对象,但是有其他对象使用此对象。希望有道理吗? : - )

所以,如果我有这个新对象,我怎么能用linq来获取特定父母的所有孩子?一个直接的后代?并且可以展平文件,即将项目作为单个对象返回,这是LIST的一部分。

我很想听听任何人对哪种方法更好的评论,即我现在拥有的和层次结构方法。

提前致谢

1 个答案:

答案 0 :(得分:0)

无论何时进行分层收集,请记住有多种不同的数据结构可以处理此类问题。有一个相当复杂,但提供了惊人的性能。它基本上由一个包含整个集合的整数字典组成。对象本身保持父关系,并且具有延迟加载的HashSet子集合。这使您可以轻松地获取树的任何级别的任何对象的父或子集合。

但评论是正确的。没有一些相同的代码,我不能给你一个这样看的例子。这都是理论上的。