List(Of T).AsReadOnly Method ()
Returns a read-only ReadOnlyCollection(Of T) wrapper for the current collection.
Assembly: mscorlib (in mscorlib.dll)
Return Value
Type: System.Collections.ObjectModel.ReadOnlyCollection(Of T)An object that acts as a read-only wrapper around the current List(Of T).
To prevent any modifications to the List(Of T) object, expose it only through this wrapper. A ReadOnlyCollection(Of T) object does not expose methods that modify the collection. However, if changes are made to the underlying List(Of 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(Of 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(Of 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.
Imports System Imports System.Collections.Generic Public Class Example Public Shared Sub Main() Dim dinosaurs As New List(Of String)(4) Console.WriteLine(vbLf & "Capacity: {0}", dinosaurs.Capacity) dinosaurs.Add("Tyrannosaurus") dinosaurs.Add("Amargasaurus") dinosaurs.Add("Mamenchisaurus") dinosaurs.Add("Deinonychus") Console.WriteLine() For Each dinosaur As String In dinosaurs Console.WriteLine(dinosaur) Next Console.WriteLine(vbLf & _ "Dim roDinosaurs As IList(Of String) = dinosaurs.AsReadOnly") Dim roDinosaurs As IList(Of String) = dinosaurs.AsReadOnly Console.WriteLine(vbLf & "Elements in the read-only IList:") For Each dinosaur As String In roDinosaurs Console.WriteLine(dinosaur) Next Console.WriteLine(vbLf & "dinosaurs(2) = ""Coelophysis""") dinosaurs(2) = "Coelophysis" Console.WriteLine(vbLf & "Elements in the read-only IList:") For Each dinosaur As String In roDinosaurs Console.WriteLine(dinosaur) Next End Sub End Class ' This code example produces the following output: ' 'Capacity: 4 ' 'Tyrannosaurus 'Amargasaurus 'Mamenchisaurus 'Deinonychus ' 'Dim roDinosaurs As IList(Of String) = 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