2011-12-07 56 views
0

我一直在对我的问题进行大量研究,似乎无法提出一个好的解决方案。来自char分隔字符串的层次结构

这个问题我有一个包含以下

a 
a/b 
a/b/c 
a/b/c/d 
a/b/f 
a/1 
a/2 
t 
t/1 

我需要解析成可以处理父子层次结构中的类的列表。知道任何级别都可以有无限数量的孩子。

任何帮助将appriciated。

+1

发表“解析这些数据的代码如下所示”。 –

+0

List myVar = new List (myString.Split(';')); – Vince

+0

最终结果应该看起来像一个树形控件,其中顶部节点将是'a'并且将具有子节点'b',任何节点都可以有多个子节点,并且深度是未知的。 – Vince

回答

2

输入的格式与Sql Server层次结构中的节点路径字符串几乎相同。下面的StackOverflow关于解析这些问题可能会非常接近,如果不是你想要的。

Converting flattened hierarchical data from SQL Server into a structured JSON object with C#/Linq

+0

在我的搜索中没有找到那个,因为我只是在寻找c#和asp.net标签。这将像魅力一样工作。非常感谢你。 – Vince

+0

在过去的几个小时里一直在反对这个问题,只有当数据带有实际的ID时,这个示例才有用 – Vince

1

这是很简单,只需使用String.Split:

String source = "a;a/b;a/b/c;a/b/c/d"; 
String[] rows = source.Split(';'); 
foreach(String row in rows) 
    Console.WriteLine(row); 

难的是把它在树上安排。

+0

该部分完成,我想要的是解析结果 – Vince

+0

我需要一个从列表中生成的父子关系,在将值分割出“a/b/c/d”这个值为每个新路径重复后生成。所以假设路径'top'有2个子节点'child1',child2',这个列表看起来像是“top; top/child1; top/child2”,一旦你从逗号分隔它,你会得到3个项目列表“top”,“top/child1”,“top/child2”,我需要将它解析成可处理父级子级的类。知道任何级别都可以有无限数量的孩子。 – Vince