Data Structure VB.Net

Imports System
Imports System.Collections
Imports System.Collections.Specialized
Public Class MyCollection
   Inherits NameObjectCollectionBase
   Private _de As New DictionaryEntry()
   Default Public ReadOnly Property Item(index As Integer) As DictionaryEntry
      Get
         _de.Key = Me.BaseGetKey(index)
         _de.Value = Me.BaseGet(index)
         Return _de
      End Get
   End Property
   Public Sub New(d As IDictionary)
      Dim de As DictionaryEntry
      For Each de In  d
         Me.BaseAdd(CType(de.Key, [String]), de.Value)
      Next de
   End Sub 'New
   Public Sub Clear()
      Me.BaseClear()
   End Sub 
End Class 
Public Class SamplesNameObjectCollectionBase
   Public Shared Sub Main()
      Dim d = New ListDictionary()
      d.Add("A", "a")
      d.Add("B", "b")
      d.Add("P", "p")
      Dim myCol As New MyCollection(d)
      Console.WriteLine(myCol.Count)
      PrintKeysAndValues(myCol)
      myCol.Clear()
      Console.WriteLine(myCol.Count)
      PrintKeysAndValues(myCol)
   End Sub 
   Public Shared Sub PrintKeysAndValues(myCol As MyCollection)
      Dim i As Integer
      For i = 0 To myCol.Count - 1
         Console.WriteLine("[{0}] : {1}, {2}", i, myCol(i).Key, myCol(i).Value)
      Next i
   End Sub 
End Class