Data Structure VB.Net

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