2011-12-07 54 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