NameObjectCollectionBase.BaseAdd adds an entry with the key and value into NameObjectCollectionBase instance.
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 End Class Public Class SamplesNameObjectCollectionBase Public Shared Sub Main() Dim d = New ListDictionary() d.Add("A", "a") d.Add("y", "Y") d.Add("g", "G") Dim myCol As New MyCollection(d) 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