ArrayList.IsReadOnly Property
.NET Framework (current version)
Gets a value indicating whether the ArrayList is read-only.
Assembly: mscorlib (in mscorlib.dll)
Property Value
Type: System.Booleantrue if the ArrayList is read-only; otherwise, false. The default is false.
Implements
IList.IsReadOnlyA 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 shows how to create a read-only wrapper around an ArrayList and how to determine if an ArrayList is read-only.
using System; using System.Collections; public class SamplesArrayList { public static void Main() { // Creates and initializes a new ArrayList. ArrayList myAL = new ArrayList(); myAL.Add( "red" ); myAL.Add( "orange" ); myAL.Add( "yellow" ); // Creates a read-only copy of the ArrayList. ArrayList myReadOnlyAL = ArrayList.ReadOnly( myAL ); // Displays whether the ArrayList is read-only or writable. Console.WriteLine( "myAL is {0}.", myAL.IsReadOnly ? "read-only" : "writable" ); Console.WriteLine( "myReadOnlyAL is {0}.", myReadOnlyAL.IsReadOnly ? "read-only" : "writable" ); // Displays the contents of both collections. Console.WriteLine( "\nInitially," ); Console.WriteLine( "The original ArrayList myAL contains:" ); foreach ( String myStr in myAL ) Console.WriteLine( " {0}", myStr ); Console.WriteLine( "The read-only ArrayList myReadOnlyAL contains:" ); foreach ( String myStr in myReadOnlyAL ) Console.WriteLine( " {0}", myStr ); // Adding an element to a read-only ArrayList throws an exception. Console.WriteLine( "\nTrying to add a new element to the read-only ArrayList:" ); try { myReadOnlyAL.Add("green"); } catch ( Exception myException ) { Console.WriteLine("Exception: " + myException.ToString()); } // Adding an element to the original ArrayList affects the read-only ArrayList. myAL.Add( "blue" ); // Displays the contents of both collections again. Console.WriteLine( "\nAfter adding a new element to the original ArrayList," ); Console.WriteLine( "The original ArrayList myAL contains:" ); foreach ( String myStr in myAL ) Console.WriteLine( " {0}", myStr ); Console.WriteLine( "The read-only ArrayList myReadOnlyAL contains:" ); foreach ( String myStr in myReadOnlyAL ) Console.WriteLine( " {0}", myStr ); } } /* This code produces the following output. myAL is writable. myReadOnlyAL is read-only. Initially, The original ArrayList myAL contains: red orange yellow The read-only ArrayList myReadOnlyAL contains: red orange yellow Trying to add a new element to the read-only ArrayList: Exception: System.NotSupportedException: Collection is read-only. at System.Collections.ReadOnlyArrayList.Add(Object obj) at SamplesArrayList.Main() After adding a new element to the original ArrayList, The original ArrayList myAL contains: red orange yellow blue The read-only ArrayList myReadOnlyAL contains: red orange yellow blue */
Universal Windows Platform
Available since 10
.NET Framework
Available since 1.1
Available since 10
.NET Framework
Available since 1.1
Show: