Mega Code Archive

 
Categories / VB.Net / Generics
 

Generic Tree

Imports System.Collections Public Class MainClass    Public Shared Sub Main()         Dim rootNode, child1 As TreeNode(Of Employee)         rootNode = New TreeNode(Of Employee)(New Employee(111, "A"))         child1 = rootNode.AddChild(New Employee(222, "B"))         rootNode.AddChild(New Employee(333, "C"))         child1.AddChild(New Employee(444, "D"))         child1.AddChild(New Employee(555, "E"))         Console.WriteLine(rootNode)    End Sub End Class Public Class TreeNode(Of T)     Public Data As T     Private _childNodes As ArrayList     Public Sub New(ByVal nodeData As T)         Me.Data = nodeData         Me._childNodes = New ArrayList     End Sub     Public ReadOnly Property Children() As TreeNode(Of T)()         Get             Return Me._childNodes.ToArray()         End Get     End Property     Default Public ReadOnly Property Item(ByVal index As Long) As TreeNode(Of T)         Get             Return Me._childNodes(index)         End Get     End Property     Public Function AddChild(ByVal nodeData As T) As TreeNode(Of T)         Dim newNode As TreeNode(Of T) = New TreeNode(Of T)(nodeData)         Me._childNodes.Add(newNode)         Return newNode     End Function     Overrides Function ToString() As String         Return Me.Data.ToString()     End Function End Class Public Class Employee     Private _id As Integer     Private _name As String     Public Sub New(ByVal id As Integer, ByVal name As String)         Me._id = id         Me._name = name     End Sub     Public Overrides Function ToString() As String         Return Me._name     End Function End Class