Extends DictionaryBase to create custom Collection : DictionaryBase « Collections « VB.Net Tutorial






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
C C








8.17.DictionaryBase
8.17.1.Extends DictionaryBase to create custom Collection