ArrayList.ReadOnly(ArrayList) Method is used to get a read-only ArrayList wrapper.
Syntax:
public static System.Collections.ArrayList ReadOnly(System.Collections.ArrayList list);
Here, the list is the ArrayList which is to be wrapped.
Return Value: It returns a read-only ArrayList Wrapper around the list.
Exception: This method returns the ArgumentNullException if the list is null.
Below programs illustrate the use of above-discussed method:
Example 1:
using System;
using System.Collections;
class GFG {
public static void Main()
{
ArrayList myList = new ArrayList();
myList.Add( "Geeks" );
myList.Add( "for" );
myList.Add( "Geeks" );
myList.Add( "Noida" );
myList.Add( "Geeks Classes" );
myList.Add( "Delhi" );
ArrayList myList2 = ArrayList.ReadOnly(myList);
Console.WriteLine( "myList ArrayList is {0}." ,
myList.IsReadOnly ? "read-only" :
"not read-only" );
Console.WriteLine( "myList2 ArrayList is {0}." ,
myList2.IsReadOnly ? "read-only" :
"not read-only" );
}
}
|
Output:
myList ArrayList is not read-only.
myList2 ArrayList is read-only.
Example 2:
using System;
using System.Collections;
class GFG {
public static void Main()
{
ArrayList myList = new ArrayList();
myList.Add( "C" );
myList.Add( "C++" );
myList.Add( "Java" );
myList.Add( "C#" );
myList.Add( "Python" );
Console.WriteLine( "Before Wrapping: " );
foreach ( string str in myList)
{
Console.WriteLine(str);
}
ArrayList myList2 = ArrayList.ReadOnly(myList);
Console.WriteLine( "After Wrapping: " );
foreach ( string str in myList2)
{
Console.WriteLine(str);
}
Console.WriteLine( "Trying to add new element into myList2:" );
myList2.Add( "HTML" );
}
}
|
Output:
Before Wrapping:
C
C++
Java
C#
Python
After Wrapping:
C
C++
Java
C#
Python
Trying to add new element into myList2:
Runtime Error:
Unhandled Exception:
System.NotSupportedException: Collection is read-only.
at System.Collections.ArrayList+ReadOnlyArrayList.Add
Explanation: In the above program, you can add or remove the elements from the myList i.e original ArrayList which will reflect into the read-only collection.
Note:
- To prevent any modifications to list, expose list only through this wrapper.
- A collection that is read-only is simply a collection with a wrapper that prevents modifying the collection. If changes are made to the underlying collection, the read-only collection reflects those changes.
- This method is an O(1) operation.
Reference: