2010-01-29 76 views
0

我有一個包含以下格式的密鑰和數據的Hashtable。在Hashtable中搜索

Key   Data 
-------------------- 
X1 ---- > D1 
X2 ---- > D1 
X3 ---- > D1 
X4 ---- > D2 
X5 ---- > D2 
X6 ---- > D3 

我的要求是從同一數據

D1 
|------- X1 
|--------X2 
|--------X3 

D2 
|------- X4 
|--------X5 

D3 
|------- X6 

誰能幫幫忙邏輯得到一個樹形結構? 在此先感謝

+0

我不是.net人,但我認爲你需要詳細說明。你想打印出那個結構嗎?或者您試圖將key =>數據的映射轉換爲樹節點對象的層次結構?你到底需要什麼幫助?轉換代碼或建議如何最好地轉換? – aberrant80 2010-01-29 05:42:18

回答

2

你可以做到這一點

var data = new Dictionary<string, string>() 
{ 
    { "X1", "D1"}, 
    { "X2", "D1"}, 
    { "X3", "D2"}, 
}; 

var transform = data.GroupBy(m => m.Value) 
        .ToDictionary(m => m.Key, m => m.Select(g => g.Key) 
        .ToList()); 
0

你可以做一些這一點。

Hashtable theHash; 
theHash = new Hashtable(); 

theHash.Add("d1", new Hashtable()); 
theHash.Add("d2", new Hashtable()); 
theHash.Add("d3", new Hashtable()); 

Hashtable activeChild; 
activeChild = (Hashtable)theHash["d1"]; 

activeChild.Add("x1", "myvalue"); 
activeChild.Add("x2", "myvalue2"); 
activeChild.Add("x3", "myvalue3");