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 namespace System; using namespace System::Collections::Generic; void main() { List<String^>^ dinosaurs = gcnew List<String^>(4); Console::WriteLine("\nCapacity: {0}", dinosaurs->Capacity); dinosaurs->Add("Tyrannosaurus"); dinosaurs->Add("Amargasaurus"); dinosaurs->Add("Mamenchisaurus"); dinosaurs->Add("Deinonychus"); Console::WriteLine(); for each(String^ dinosaur in dinosaurs) { Console::WriteLine(dinosaur); } Console::WriteLine("\nIList<String^>^ roDinosaurs = dinosaurs->AsReadOnly()"); IList<String^>^ roDinosaurs = dinosaurs->AsReadOnly(); Console::WriteLine("\nElements in the read-only IList:"); for each(String^ dinosaur in roDinosaurs) { Console::WriteLine(dinosaur); } Console::WriteLine("\ndinosaurs[2] = \"Coelophysis\""); dinosaurs[2] = "Coelophysis"; Console::WriteLine("\nElements in the read-only IList:"); for each(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