NameObjectCollectionBase.IsReadOnly Property tells whether the NameObjectCollectionBase instance is read-only.
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, bReadOnly As [Boolean])
Dim de As DictionaryEntry
For Each de In d
Me.BaseAdd(CType(de.Key, [String]), de.Value)
Next de
Me.IsReadOnly = bReadOnly
End Sub 'New
Public Sub Add(key As [String], value As [Object])
Me.BaseAdd(key, value)
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 myROCol As New MyCollection(d, True)
Try
myROCol.Add("B", "bb")
Catch e As NotSupportedException
Console.WriteLine(e.ToString())
End Try
PrintKeysAndValues(myROCol)
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
Related examples in the same category