Open In App

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

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:




// 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:

Reference:


Article Tags :
C#