NameObjectCollectionBase.IsReadOnly Property
.NET Framework (current version)
Gets or sets a value indicating whether the NameObjectCollectionBase instance is read-only.
Assembly: System (in System.dll)
Property Value
Type: System.Booleantrue if the NameObjectCollectionBase instance is read-only; otherwise, false.
A collection that is read-only does not allow the addition, removal, or modification of elements after the collection is created.
A collection that is read-only is simply a collection with a wrapper that prevents modifying the collection; therefore, if changes are made to the underlying collection, the read-only collection reflects those changes.
Retrieving the value of this property is an O(1) operation.
The following code example creates a read-only collection.
Imports System Imports System.Collections Imports System.Collections.Specialized Public Class MyCollection Inherits NameObjectCollectionBase Private _de As New DictionaryEntry() ' Gets a key-and-value pair (DictionaryEntry) using an index. 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 ' Adds elements from an IDictionary into the new collection. 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 'NewNew ' Adds an entry to the collection. Public Sub Add(key As [String], value As [Object]) Me.BaseAdd(key, value) End Sub 'Add End Class 'MyCollection Public Class SamplesNameObjectCollectionBase Public Shared Sub Main() ' Creates and initializes a new MyCollection that is read-only. Dim d = New ListDictionary() d.Add("red", "apple") d.Add("yellow", "banana") d.Add("green", "pear") Dim myROCol As New MyCollection(d, True) ' Tries to add a new item. Try myROCol.Add("blue", "sky") Catch e As NotSupportedException Console.WriteLine(e.ToString()) End Try ' Displays the keys and values of the MyCollection. Console.WriteLine("Read-Only Collection:") PrintKeysAndValues(myROCol) End Sub 'Main 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 'PrintKeysAndValues End Class 'SamplesNameObjectCollectionBase 'This code produces the following output. ' 'System.NotSupportedException: Collection is read-only. ' at System.Collections.Specialized.NameObjectCollectionBase.BaseAdd(String name, Object value) ' at SamplesNameObjectCollectionBase.Main() 'Read-Only Collection: '[0] : red, apple '[1] : yellow, banana '[2] : green, pear
Universal Windows Platform
Available since 10
.NET Framework
Available since 1.1
Available since 10
.NET Framework
Available since 1.1
Show: