ArrayList.ReadOnly メソッド

定義

読み取り専用のリスト ラッパーを返します。

オーバーロード

名前 説明
ReadOnly(ArrayList)

読み取り専用の ArrayList ラッパーを返します。

ReadOnly(IList)

読み取り専用の IList ラッパーを返します。

ReadOnly(ArrayList)

読み取り専用の ArrayList ラッパーを返します。

public:
 static System::Collections::ArrayList ^ ReadOnly(System::Collections::ArrayList ^ list);
public static System.Collections.ArrayList ReadOnly(System.Collections.ArrayList list);
static member ReadOnly : System.Collections.ArrayList -> System.Collections.ArrayList
Public Shared Function ReadOnly (list As ArrayList) As ArrayList

パラメーター

list
ArrayList

ラップする ArrayList

返品

listの読み取り専用ArrayList ラッパー。

例外

listnullです。

次のコード例は、 ArrayList の周囲に読み取り専用ラッパーを作成する方法と、 ArrayList が読み取り専用かどうかを判断する方法を示しています。

 using System;
 using System.Collections;
 public class SamplesArrayList  {

    public static void Main()  {

       // Creates and initializes a new ArrayList.
       ArrayList myAL = new ArrayList();
       myAL.Add( "red" );
       myAL.Add( "orange" );
       myAL.Add( "yellow" );

       // Creates a read-only copy of the ArrayList.
       ArrayList myReadOnlyAL = ArrayList.ReadOnly( myAL );

       // Displays whether the ArrayList is read-only or writable.
       Console.WriteLine( "myAL is {0}.", myAL.IsReadOnly ? "read-only" : "writable" );
       Console.WriteLine( "myReadOnlyAL is {0}.", myReadOnlyAL.IsReadOnly ? "read-only" : "writable" );

       // Displays the contents of both collections.
       Console.WriteLine( "\nInitially," );
       Console.WriteLine( "The original ArrayList myAL contains:" );
       foreach ( string myStr in myAL )
          Console.WriteLine( "   {0}", myStr );
       Console.WriteLine( "The read-only ArrayList myReadOnlyAL contains:" );
       foreach ( string myStr in myReadOnlyAL )
          Console.WriteLine( "   {0}", myStr );

       // Adding an element to a read-only ArrayList throws an exception.
       Console.WriteLine( "\nTrying to add a new element to the read-only ArrayList:" );
       try  {
          myReadOnlyAL.Add("green");
       } catch ( Exception myException )  {
          Console.WriteLine("Exception: " + myException.ToString());
       }

       // Adding an element to the original ArrayList affects the read-only ArrayList.
       myAL.Add( "blue" );

       // Displays the contents of both collections again.
       Console.WriteLine( "\nAfter adding a new element to the original ArrayList," );
       Console.WriteLine( "The original ArrayList myAL contains:" );
       foreach ( string myStr in myAL )
          Console.WriteLine( "   {0}", myStr );
       Console.WriteLine( "The read-only ArrayList myReadOnlyAL contains:" );
       foreach ( string myStr in myReadOnlyAL )
          Console.WriteLine( "   {0}", myStr );
    }
 }


/*
This code produces the following output.

myAL is writable.
myReadOnlyAL is read-only.

Initially,
The original ArrayList myAL contains:
   red
   orange
   yellow
The read-only ArrayList myReadOnlyAL contains:
   red
   orange
   yellow

Trying to add a new element to the read-only ArrayList:
Exception: System.NotSupportedException: Collection is read-only.
   at System.Collections.ReadOnlyArrayList.Add(Object obj)
   at SamplesArrayList.Main()

After adding a new element to the original ArrayList,
The original ArrayList myAL contains:
   red
   orange
   yellow
   blue
The read-only ArrayList myReadOnlyAL contains:
   red
   orange
   yellow
   blue

*/
Imports System.Collections

Public Class SamplesArrayList

   Public Shared Sub Main()

      Dim myStr As [String]

      ' Creates and initializes a new ArrayList.
      Dim myAL As New ArrayList()
      myAL.Add("red")
      myAL.Add("orange")
      myAL.Add("yellow")

      ' Creates a read-only copy of the ArrayList.
      Dim myReadOnlyAL As ArrayList = ArrayList.ReadOnly(myAL)

      ' Displays whether the ArrayList is read-only or writable.
      If myAL.IsReadOnly Then
         Console.WriteLine("myAL is read-only.")
      Else
         Console.WriteLine("myAL is writable.")
      End If
      If myReadOnlyAL.IsReadOnly Then
         Console.WriteLine("myReadOnlyAL is read-only.")
      Else
         Console.WriteLine("myReadOnlyAL is writable.")
      End If

      ' Displays the contents of both collections.
      Console.WriteLine()
      Console.WriteLine("Initially,")
      Console.WriteLine("The original ArrayList myAL contains:")
      For Each myStr In  myAL
         Console.WriteLine("   {0}", myStr)
      Next myStr
      Console.WriteLine("The read-only ArrayList myReadOnlyAL contains:")
      For Each myStr In  myReadOnlyAL
         Console.WriteLine("   {0}", myStr)
      Next myStr 

      ' Adding an element to a read-only ArrayList throws an exception.
      Console.WriteLine()
      Console.WriteLine("Trying to add a new element to the read-only ArrayList:")
      Try
         myReadOnlyAL.Add("green")
      Catch myException As Exception
         Console.WriteLine(("Exception: " + myException.ToString()))
      End Try

      ' Adding an element to the original ArrayList affects the read-only ArrayList.
      myAL.Add("blue")

      ' Displays the contents of both collections again.
      Console.WriteLine()
      Console.WriteLine("After adding a new element to the original ArrayList,")
      Console.WriteLine("The original ArrayList myAL contains:")
      For Each myStr In  myAL
         Console.WriteLine("   {0}", myStr)
      Next myStr
      Console.WriteLine("The read-only ArrayList myReadOnlyAL contains:")
      For Each myStr In  myReadOnlyAL
         Console.WriteLine("   {0}", myStr)
      Next myStr 

   End Sub

End Class


'This code produces the following output.
'
'myAL is writable.
'myReadOnlyAL is read-only.
'
'Initially,
'The original ArrayList myAL contains:
'   red
'   orange
'   yellow
'The read-only ArrayList myReadOnlyAL contains:
'   red
'   orange
'   yellow
'
'Trying to add a new element to the read-only ArrayList:
'Exception: System.NotSupportedException: Collection is read-only.
'   at System.Collections.ReadOnlyArrayList.Add(Object obj)
'   at SamplesArrayList.Main()
'
'After adding a new element to the original ArrayList,
'The original ArrayList myAL contains:
'   red
'   orange
'   yellow
'   blue
'The read-only ArrayList myReadOnlyAL contains:
'   red
'   orange
'   yellow
'   blue

注釈

listへの変更を防ぐには、このラッパーを介してのみlistを公開します。

読み取り専用のコレクションは、コレクションの変更を妨げるラッパーを持つコレクションです。 基になるコレクションに変更が加えられた場合、読み取り専用コレクションにはそれらの変更が反映されます。

このメソッドは O(1) 操作です。

こちらもご覧ください

適用対象

ReadOnly(IList)

読み取り専用の IList ラッパーを返します。

public:
 static System::Collections::IList ^ ReadOnly(System::Collections::IList ^ list);
public static System.Collections.IList ReadOnly(System.Collections.IList list);
static member ReadOnly : System.Collections.IList -> System.Collections.IList
Public Shared Function ReadOnly (list As IList) As IList

パラメーター

list
IList

ラップする IList

返品

listの読み取り専用IList ラッパー。

例外

listnullです。

注釈

listへの変更を防ぐには、このラッパーを介してのみlistを公開します。

読み取り専用のコレクションは、コレクションの変更を妨げるラッパーを持つコレクションです。 基になるコレクションに変更が加えられた場合、読み取り専用コレクションにはそれらの変更が反映されます。

このメソッドは O(1) 操作です。

こちらもご覧ください

適用対象