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

本文关键字:嵌套 返回 查询 LINQ 数据结构 使用 | 更新日期: 2023-09-27 17:57:44

对于嵌套级别未知的数据结构,有没有其他方法可以做到这一点?此外,尽管我相信在另一个问题中也是如此,但每个级别都有多个条目(假设它可能只有一个或零个条目)。

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

作为最后的手段,我考虑编写自己的类来存储数据,但如果没有必要的话,我不想这么做。

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