Open In App

C# | Creating a read-only wrapper for the List

Last Updated : 27 Jan, 2019
Comments
Improve
Suggest changes
Like Article
Like
Report
List<T>.AsReadOnly Method is used to get a read-only ReadOnlyCollection<T> wrapper for the current collection. Syntax:
public System.Collections.ObjectModel.ReadOnlyCollection AsReadOnly ();
Return Value: It returns an object that acts as a read-only wrapper around the current List<T>. Example: CSharp
// C# code to create a read-only
// wrapper for the List<T>
using System;
using System.Collections;
using System.Collections.Generic;

class GFG {

    // Driver code
    public static void Main()
    {

        // Creating an List<T> of Integers
        List<int> firstlist = new List<int>();

        // Adding elements to List
        firstlist.Add(1);
        firstlist.Add(2);
        firstlist.Add(3);
        firstlist.Add(4);
        firstlist.Add(5);
        firstlist.Add(6);
        firstlist.Add(7);

        Console.WriteLine("Before Wrapping: ");

        // Displaying the elements in the List
        foreach(int i in firstlist)
        {
            Console.WriteLine(i);
        }

        // Creating a Read-Only packing
        // around the List<T>
        IList<int> mylist2 = firstlist.AsReadOnly();

        Console.WriteLine("After Wrapping: ");

        // Displaying the elements
        foreach(int m in mylist2)
        {
            Console.WriteLine(m);
        }

        Console.WriteLine("Trying to add new element into mylist2:");

        // it will give error
        mylist2.Add(8);
    }
}
Output:
Before Wrapping: 
1
2
3
4
5
6
7
After Wrapping: 
1
2
3
4
5
6
7
Trying to add new element into mylist2:
Runtime Error:
Unhandled Exception: System.NotSupportedException: Collection is read-only.
Note:
  • 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:

Next Article

Similar Reads