List<T>.AsReadOnly Method ()
Returns a read-only ReadOnlyCollection<T> wrapper for the current collection.
Assembly: mscorlib (in mscorlib.dll)
To prevent any modifications to the List<T> object, expose it only through this wrapper. A ReadOnlyCollection<T> object does not expose methods that modify the collection. However, if changes are made to the underlying List<T> object, the read-only collection reflects those changes.
This method is an O(1) operation.
The following example demonstrates the AsReadOnly method. A List<T> of strings with a capacity of 4 is created, because the ultimate size of the list is known to be exactly 4. The list is populated with four strings, and the AsReadOnly method is used to get a read-only IList<T> generic interface implementation that wraps the original list.
An element of the original list is set to "Coelophysis" using the Item property (the indexer in C#), and the contents of the read-only list are displayed again to demonstrate that it is just a wrapper for the original list.
using System; using System.Collections.Generic; public class Example { public static void Main() { List<string> dinosaurs = new List<string>(4); Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Deinonychus"); Console.WriteLine(); foreach(string s in dinosaurs) { Console.WriteLine(s); } Console.WriteLine("\nIList<string> roDinosaurs = dinosaurs.AsReadOnly()"); IList<string> roDinosaurs = dinosaurs.AsReadOnly(); Console.WriteLine("\nElements in the read-only IList:"); foreach(string dinosaur in roDinosaurs) { Console.WriteLine(dinosaur); } Console.WriteLine("\ndinosaurs[2] = \"Coelophysis\""); dinosaurs[2] = "Coelophysis"; Console.WriteLine("\nElements in the read-only IList:"); foreach(string dinosaur in roDinosaurs) { Console.WriteLine(dinosaur); } } } /* This code example produces the following output: Capacity: 4 Tyrannosaurus Amargasaurus Mamenchisaurus Deinonychus IList<string> roDinosaurs = dinosaurs.AsReadOnly() Elements in the read-only IList: Tyrannosaurus Amargasaurus Mamenchisaurus Deinonychus dinosaurs[2] = "Coelophysis" Elements in the read-only IList: Tyrannosaurus Amargasaurus Coelophysis Deinonychus */
Available since 10
.NET Framework
Available since 2.0
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0