Quale collezione per memorizzare una struttura ad albero?

Voglio memorizzare un organigramma in una raccolta. Penso che una struttura dati ad albero sarà più adatta alle mie esigenze, poiché ho bisogno di aggiungere più nodes a un nodo.

LinkedList fornisce solo l’aggiunta di un nodo a un altro nodo, se ho capito bene.

Ho esaminato la collezione di treeset C5, ma non sembra che abbia il metodo Add() per aggiungere più di 2 nodes a un nodo.

Ho anche esaminato la class Treeview dalla libreria Windows Forms, ma non voglio aggiungere dll di moduli di Windows al mio progetto, poiché sto creando un’applicazione del livello di servizio. (o va bene?)

Non voglio scrivere la mia class di raccolta degli alberi, se ce n’è già una fornita da terze parti?

Qualche suggerimento per favore?

Grazie

Qualcosa di simile può essere un punto di partenza. Usando i generici questo può contenere un albero di qualsiasi cosa

 class TreeNode { List> Children = new List>(); T Item {get;set;} public TreeNode (T item) { Item = item; } public TreeNode AddChild(T item) { TreeNode nodeItem = new TreeNode(item); Children.Add(nodeItem); return nodeItem; } } 

Un campione che contiene un albero di archi

 string root = "root"; TreeNode myTreeRoot = new TreeNode(root); var first = myTreeRoot.AddChild("first child"); var second = myTreeRoot.AddChild("second child"); var grandChild = first.AddChild("first child's child");