VB.Net/Data Structure/CollectionBase
A strongly typed collection of your own Objects
<source lang="vbnet"> Imports System Imports System.Collections Imports System.Collections.Generic Public Class MainClass
Shared Sub Main(ByVal args As String()) Dim student_list As New StudentCollection student_list.Add(New Student("A", "E")) student_list.Add(New Student("B", "D")) student_list.Add(New Student("C", "C")) student_list.Add(New Student("D", "B")) student_list.Add(New Student("E", "A")) For Each student As Student In student_list Console.WriteLine(student.ToString) Next student End Sub
End Class
Public Class Student
Private m_FirstName As String Private m_LastName As String Public Sub New(ByVal first_name As String, ByVal last_name As String) m_FirstName = first_name m_LastName = last_name End Sub Public Overrides Function ToString() As String Return m_FirstName & " " & m_LastName End Function
End Class " A strongly typed collection of Students. Public Class StudentCollection
Inherits CollectionBase " Add an Student. Public Sub Add(ByVal value As Student) List.Add(value) End Sub " Return True if the collection contains this employee. Public Function Contains(ByVal value As Student) As Boolean Return List.Contains(value) End Function " Return this Student"s index. Public Function IndexOf(ByVal value As Student) As Integer Return List.IndexOf(value) End Function " Insert a new Student. Public Sub Insert(ByVal index As Integer, ByVal value As Student) List.Insert(index, value) End Sub " Return the Student at this position. Default Public ReadOnly Property Item(ByVal index As Integer) As Student Get Return DirectCast(List.Item(index), Student) End Get End Property " Remove an Student. Public Sub Remove(ByVal value As Student) List.Remove(value) End Sub
End Class
</source>
Inherit from CollectionBase
<source lang="vbnet"> Imports System Public Class MainClass
Shared Sub Main() Dim e1 As New Employee("E", 50000) Dim e2 As New Employee("S", 60000) Dim myEmployees As New Employees() myEmployees.Add(e1) myEmployees.Add(e2) Dim aEmployee As Employee For Each aEmployee In myEmployees Console.WriteLine(aEmployee.Name) Next End Sub
End Class
Public Class Employees
Inherits System.Collections.CollectionBase Public Sub Add(ByVal aEmployee As Employee) List.Add(aEmployee) End Sub Public Sub Remove(ByVal index As Integer) If index > Count - 1 Or index < 0 Then Console.WriteLine("Can"t add this item") Else List.RemoveAt(index) End If End Sub Default Public ReadOnly Property Item(ByVal index As Integer) As Employee Get Return CType(List.Item(index), Employee) End Get End Property
End Class
Public Class Employee
Private m_Name As String Private m_Salary As Decimal Public Sub New(ByVal theName As String, ByVal curSalary As Decimal) m_Name = theName m_Salary = curSalary End Sub Public ReadOnly Property Name() As String Get Return m_Name End Get End Property Public ReadOnly Property Salary() As Decimal Get Return MyClass.m_Salary End Get End Property
End Class
</source>