forse così va :master:
codice:
Partial Class prove_a
    Inherits System.Web.UI.Page

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim j As New NameObjectCollection()
        j.Add("stefano", 1)
        j.Add("carlo", 2)
        j.Add("nicola", 3)

        For i As Integer = 0 To j.Count - 1
            Response.Write(j.Keys(i) & ": " & j(i) & "
")
        Next
        Response.Write(j("nicola") & "
")
        Response.Write(j(2) & "
")
    End Sub

    Private Class NameObjectCollection
        Inherits NameObjectCollectionBase

        Public Sub Add(ByVal key As String, ByVal value As Object)
            If Array.IndexOf(Me.BaseGetAllKeys, key) = -1 Then
                Me.BaseAdd(key, value)
            End If

        End Sub

        Public Sub Clear()
            Me.BaseClear()
        End Sub

        Public Sub Remove(ByVal key As String)
            Me.BaseRemove(key)
        End Sub

        Public Sub Remove(ByVal index As Integer)
            Me.BaseRemoveAt(index)
        End Sub

        Default Public Property Item(ByVal key As String)
            Get
                Return Me.BaseGet(key)
            End Get
            Set(ByVal value)
                Me.BaseSet(key, value)
            End Set
        End Property

        Default Public Property Item(ByVal index As Integer)
            Get
                Return Me.BaseGet(index)
            End Get
            Set(ByVal value)
                Me.BaseSet(index, value)
            End Set
        End Property
    End Class
End Class