使用LINQ嵌套数据结构进行查询并返回嵌套组
本文关键字:嵌套 返回 查询 LINQ 数据结构 使用 | 更新日期: 2023-09-27 17:57:44
对于嵌套级别未知的数据结构,有没有其他方法可以做到这一点?此外,尽管我相信在另一个问题中也是如此,但每个级别都有多个条目(假设它可能只有一个或零个条目)。
此外,是否有一种好的方法来存储这样的数据结构,以便可以很容易地找到每个对象的父对象?我想的是锯齿状数组,但这似乎很难在运行时生成,因为我不知道嵌套有多深。像树视图这样的结构是理想的,但如果我只是将其用于数据存储,而不是视觉部分,我不想实现控件。
作为最后的手段,我考虑编写自己的类来存储数据,但如果没有必要的话,我不想这么做。
您正在寻找具有父引用的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);
}
}