Mega Code Archive

 
Categories / C# / Generics
 

Generic TreeNode

using System; using System.Collections.Generic; using System.Text; using System.Collections; public class Employee {     private int _id = 0;     private string _name = null;     public Employee(int id, string name) {         this._id = id;         this._name = name;     }     public int Id {         get { return this._id; }     }     public string Name {         get { return this._name; }     }     public override string ToString() {         return this._name;     } } public class TreeNode<T> {     private T _nodeData;     private ArrayList _childNodes;     public TreeNode(T nodeData) {         this._nodeData = nodeData;         this._childNodes = new ArrayList();     }     public T Data {         get { return this._nodeData; }     }     public TreeNode<T>[] Children {         get { return (TreeNode<T>[])this._childNodes.ToArray(typeof(TreeNode<T>)); }     }     public TreeNode<T> this[int index] {         get { return (TreeNode<T>)this._childNodes[index]; }     }     public TreeNode<T> AddChild(T nodeData) {         TreeNode<T> newNode = new TreeNode<T>(nodeData);         this._childNodes.Add(newNode);         return newNode;     }     public override string ToString() {         return this._nodeData.ToString();     } } class Program {     static void Main(string[] args) {         TreeNode<Employee> rootNode = new TreeNode<Employee>(new Employee(111, "H"));         TreeNode<Employee> child1 = rootNode.AddChild(new Employee(222, "B"));         rootNode.AddChild(new Employee(333, "T"));         child1.AddChild(new Employee(444, "B"));         child1.AddChild(new Employee(555, "M"));     } }