VB.Net Tutorial/Collections/DictionaryBase
Extends DictionaryBase to create custom Collection
<source lang="vbnet">Imports System.Collections Imports System.Collections.Generic Imports System.Collections.Specialized public class Test
public Shared Sub Main Dim dict As New EmployeeDictionary dict.Add("123-45-6789", New Employee("A", "A")) dict.Add("111-22-3333", New Employee("B", "B")) dict.Add("365-76-5476", New Employee("C", "C")) dict.Add("832-77-6847", New Employee("D", "D")) Dim emp As Employee = dict.Item("365-76-5476") Console.WriteLine(emp.ToString) End Sub
End class Public Class Employee
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 Public Class EmployeeDictionary
Inherits System.Collections.DictionaryBase Public Sub Add(ByVal new_key As String, ByVal new_employee As Employee) Dictionary.Add(new_key, new_employee) End Sub Default Public Property Item(ByVal key As String) As Employee Get Return DirectCast(Dictionary.Item(key), Employee) End Get Set(ByVal Value As Employee) Dictionary.Item(key) = Value End Set End Property Public ReadOnly Property Keys() As ICollection Get Return Dictionary.Keys End Get End Property Public ReadOnly Property Values() As ICollection Get Return Dictionary.Values End Get End Property Public Function Contains(ByVal key As String) As Boolean Return Dictionary.Contains(key) End Function Public Sub Remove(ByVal key As String) Dictionary.Remove(key) End Sub
End Class</source>
C C