List.AsReadOnly メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Dim instance As List(Of T) Dim returnValue As ReadOnlyCollection(Of T) returnValue = instance.AsReadOnly
現在の List をラップする読み取り専用のラッパーとして動作する ReadOnlyCollection。

List が変更されないようにするには、List を公開するときに必ずこのラッパーを使用するようにします。
読み取り専用のコレクションは、コレクションの変更を防ぐラッパーがコレクションに組み込まれているに過ぎません。したがって、基になっているコレクションで変更が加えられた場合、読み取り専用のコレクションでもその内容が反映されます。

AsReadOnly メソッドのコード例を次に示します。リストの最終的なサイズはちょうど 4 になることがわかっているため、容量が 4 の文字列の List が作成されます。リストに 4 つの文字列が設定され、AsReadOnly メソッドを使用して、元のリストをラップする読み取り専用の IList ジェネリック インターフェイスの実装を取得します。
Item プロパティ (C# ではインデクサ) を使用して、元のリストの要素が "Coelophysis" に設定されます。読み取り専用リストの内容が再表示され、それが元のリストの単なるラッパーであることが示されます。
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
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 */
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 */

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からList.AsReadOnly メソッドを検索する場合は、下記のリンクをクリックしてください。

- List.AsReadOnly メソッドのページへのリンク