我有什麼應該是一個相當無足輕重的問題,但我想確保我在.Net 4.5中以最「優雅」的方式做到這一點,我想一些比我更聰明的人的意見。通用樹結構 - 如何填充組織結構圖
我有一個類,它表示一個通用的樹結構,例如:
public class TreeNode<T>
{
List<TreeNode<T>> Children;
T Item {get;set;}
public TreeNode (T item)
{
Item = item;
}
public TreeNode<T> AddChild(T item)
{
TreeNode<T> nodeItem = new TreeNode<T>(item);
Children.Add(nodeItem);
return nodeItem;
}
}
現在,我代表該組織的僱員一個Person類。每個Person
對象都有一個指向其上級的ID
和BossID
。
多位員工可以擁有相同的老闆,因此我試圖用此樹結構創建組織結構圖。
頂部節點將是Person
對象,其中BossID
爲空(它是一個int?
)。我可以快速獲得LINQ。
這是下一步令我困惑的一點。有多種方法,但對我來說似乎有點草率,我知道必須有一種更容易/更優雅的方式來填充組織結構圖的其餘部分。
所以現在我有一個通用對象List<Person>
持有所有員工,其各種BossID
和這個通用的樹結構,我可以添加子節點。
這都是非常基本的,但是填充樹的正確順序是什麼?我遞歸地應該迭代線?我知道這裏涉及回溯,這是我陷入困境的地方。
我很抱歉,我的背景不在計算機科學,如果是我意識到樹結構,鏈表和其他一切都是微不足道的東西。但這是我第一次嘗試,我想看看它是如何正確完成的。
我很欣賞任何指導。
所以基本上你的問題是如何創建組織樹,因爲你有人的名單? –
就這麼簡單。我有那個泛型樹類,我有一個List對象,它們有自己的ID和老闆的ID。我只想知道4.5下最乾淨的方法是什麼。我知道我可以查找如何填充一棵樹,但有一些非常差的例子,只是尋找輸入。我已經在這裏看到了一些驚人的魔力,特別是像LINQ這樣的事情,這些都極大地簡化了我的代碼。 – Patrick