C# 使用LINQ嵌套数据结构查询并返回嵌套组
除了嵌套级别未知的数据结构之外,还有其他方法吗?另外,虽然我相信在另一个问题中也是这样,但每个级别都有多个条目(假设它可能只有一个条目,或者零) 此外,是否有一种好的方法来存储这样的数据结构,以便可以轻松找到每个对象的父对象?我曾考虑过锯齿状数组,但在运行时似乎很难生成,因为我不知道嵌套有多深。具有类似treeview的结构的东西是理想的,但是如果我只是将其用于数据存储,而不是用于视觉部分,我不想实现控件C# 使用LINQ嵌套数据结构查询并返回嵌套组,c#,linq,C#,Linq,除了嵌套级别未知的数据结构之外,还有其他方法吗?另外,虽然我相信在另一个问题中也是这样,但每个级别都有多个条目(假设它可能只有一个条目,或者零) 此外,是否有一种好的方法来存储这样的数据结构,以便可以轻松找到每个对象的父对象?我曾考虑过锯齿状数组,但在运行时似乎很难生成,因为我不知道嵌套有多深。具有类似treeview的结构的东西是理想的,但是如果我只是将其用于数据存储,而不是用于视觉部分,我不想实现控件 作为最后一种手段,我曾考虑编写自己的类来存储数据,但如果不需要的话,我不想这样做。您正在寻
作为最后一种手段,我曾考虑编写自己的类来存储数据,但如果不需要的话,我不想这样做。您正在寻找一个包含父引用的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);
}
}
类节点
{
公共节点父节点{get;}
公共IEnumerable子项{get;}
}
IEnumerable展平(节点)
{
收益回报节点;
foreach(node.Children中的变量child)
{
收益率平坦(子);
}
}
嵌套级别未知?这听起来可能对cpu有害……我很确定它不会低于20,当然也不会高于30(虽然理论上可能是)。我是从一个文本文件中读出来的,所以没那么糟糕。你能告诉我们数据结构到底是什么样的(即代码)吗?但我如何将数据放入该结构中(我需要的是展平的相反方向,而不是展平本身)?@soandos:取决于数据的外观。@dbt,你有办法做到这一点吗?