Make Dictionary based on your own Object
Imports System Imports System.Collections Imports System.Collections.Generic Public Class MainClass Shared Sub Main(ByVal args As String()) Dim dict As New StudentDictionary dict.Add("113-11-1111", New Student("A", "a")) dict.Add("222-22-2222", New Student("B", "b")) dict.Add("333-33-3333", New Student("C", "c")) dict.Add("444-44-4444", New Student("D", "d")) Dim student As Student = dict.Item("365-76-5476") Console.WriteLine(student.ToString) 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 Public Class StudentDictionary Inherits System.Collections.DictionaryBase ' Add a Dictionary entry. Public Sub Add(ByVal new_key As String, ByVal new_student As Student) Dictionary.Add(new_key, new_student) End Sub ' Return an object with the given key. Default Public Property Item(ByVal key As String) As Student Get Return DirectCast(Dictionary.Item(key), Student) End Get Set(ByVal Value As Student) Dictionary.Item(key) = Value End Set End Property ' Return a collection containing the Dictionary's keys. Public ReadOnly Property Keys() As ICollection Get Return Dictionary.Keys End Get End Property ' Return a collection containing the Dictionary's values. Public ReadOnly Property Values() As ICollection Get Return Dictionary.Values End Get End Property ' Return True if the Dictionary contains this Student. Public Function Contains(ByVal key As String) As Boolean Return Dictionary.Contains(key) End Function ' Remove this entry. Public Sub Remove(ByVal key As String) Dictionary.Remove(key) End Sub End Class