使用LINQ嵌套数据结构进行查询并返回嵌套组

问题描述

|| 除了嵌套级别未知的数据结构之外,是否有其他方法可以执行此操作?另外,尽管我认为在其他问题中也是如此,但每个级别都有一个以上的条目(假设这个条目可能只有一个或为零)。 另外,是否有一种很好的方法来存储这样的数据结构,以便可以轻松找到每个对象的父对象?我当时想的是锯齿状的数组,但是由于不知道嵌套的深度,在运行时似乎很难生成。像树视图这样的结构比较理想,但是如果我只是将其用于数据存储而不是用于可视部分,则我不想实现控件。 作为最后的选择,我正在考虑编写自己的类来存储数据,但是如果不需要的话,我不想这样做。     

解决方法

您是否在寻找带有父引用的n元树?
class Node
{
    public Node Parent { get; }
    public IEnumerable<Node> Children { get; }
}

IEnumerable<Node> Flatten(Node node)
{
    yield return node;
    foreach (var child in node.Children)
    {
        yield return Flatten(child);
    }
}
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...