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

时间:2011-05-25 19:15:20

标签: c# linq

有没有办法this但是对于具有未知嵌套级别的数据结构?另外,虽然我认为在另一个问题中也是如此,但每个级别都有多个条目(假设它只有一个,或者为零)。

此外,是否有一种很好的方法来存储这样的数据结构,以便可以轻松找到每个对象的父级?我在考虑类似锯齿状数组的东西,但这似乎很难在运行时生成,因为我不知道嵌套有多深。像树视图这样的结构的东西是理想的,但如果我只是将它用于数据存储而不是视觉部分,我不想实现控件。

作为最后的手段,我正在考虑编写自己的类来存储数据,但如果我不需要,我不想这样做。

1 个答案:

答案 0 :(得分:0)

您是否正在寻找带有父引用的n-ary树?

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);
    }
}