MyClass
由ID
ParentID
和List<MyClass>
作爲Children
(ID/PARENTID)列表,以分級列表
我有這樣
ID ParentID
1 0
2 7
3 1
4 5
5 1
6 2
7 1
8 6
9 0
10 9
輸出(分層列表)的MyClass
列表作爲List<MyClass>
1 __ 3
|__ 5__ 4
|__ 7__ 2__ 6__ 8
|__ 11
9 __10
在linq中實現這個最簡單的方法是什麼?
PS:ParentID
沒有排序
編輯:
我嘗試:
class MyClass
{
public int ID;
public int ParentID;
public List<MyClass> Children = new List<MyClass>();
public MyClass(int id, int parent_id)
{
ID = id;
ParentID = parent_id;
}
}
初始化樣本數據,以期達到分層數據
List<MyClass> items = new List<MyClass>()
{
new MyClass(1, 0),
new MyClass(2, 7),
new MyClass(3, 1),
new MyClass(4, 5),
new MyClass(5, 1),
new MyClass(6, 2),
new MyClass(7,1),
new MyClass(8, 6),
new MyClass(9, 0),
new MyClass(10, 9),
new MyClass(11, 7),
};
Dictionary<int, MyClass> dic = items.ToDictionary(ee => ee.ID);
foreach (var c in items)
if (dic.ContainsKey(c.ParentID))
dic[c.ParentID].Children.Add(c);
,你可以看到,很多的我不想要的東西仍然在字典中
應的輸出是什麼類型的數據結構? – Jon 2012-02-23 08:00:13
@Jon:請參閱我更新的問題 – 2012-02-23 08:03:42
但是'List'不是一個分層數據結構。換句話說,你如何打算將一個'List'變成圖片樹? – Jon 2012-02-23 08:17:50