ArrayList.ReadOnly メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
読み取り専用のリスト ラッパーを返します。
オーバーロード
ReadOnly(ArrayList) |
読み取り専用 ArrayList ラッパーを返します。 |
ReadOnly(IList) |
読み取り専用 IList ラッパーを返します。 |
ReadOnly(ArrayList)
- ソース:
- ArrayList.cs
- ソース:
- ArrayList.cs
- ソース:
- ArrayList.cs
読み取り専用 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 ラッパー。
例外
list
が null
です。
例
次のコード例は、 の周囲に読み取り専用ラッパーを作成する方法と、 が読み取り ArrayList 専用かどうかを ArrayList 判断する方法を示しています。
#using <system.dll>
using namespace System;
using namespace System::Collections;
int main()
{
// Creates and initializes a new ArrayList.
ArrayList^ myAL = gcnew 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 ? (String^)"read-only" : "writable" );
Console::WriteLine( "myReadOnlyAL is {0}.", myReadOnlyAL->IsReadOnly ? (String^)"read-only" : "writable" );
// Displays the contents of both collections.
Console::WriteLine( "\nInitially," );
Console::WriteLine( "The original ArrayList myAL contains:" );
for ( int i(0); i < myAL->Count; ++i )
Console::WriteLine( " {0}", static_cast<String^>(myAL[ i ]) );
Console::WriteLine( "The read-only ArrayList myReadOnlyAL contains:" );
for ( int i(0); i < myReadOnlyAL->Count; ++i )
Console::WriteLine( " {0}", static_cast<String^>(myReadOnlyAL[ i ]) );
// 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( String::Concat( "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:" );
for ( int i(0); i < myAL->Count; ++i )
Console::WriteLine( " {0}", static_cast<String^>(myAL[ i ]) );
Console::WriteLine( "The read-only ArrayList myReadOnlyAL contains:" );
for ( int i(0); i < myReadOnlyAL->Count; ++i )
Console::WriteLine( " {0}", static_cast<String^>(myReadOnlyAL[ i ]) );
}
/*
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
*/
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)
- ソース:
- ArrayList.cs
- ソース:
- ArrayList.cs
- ソース:
- ArrayList.cs
読み取り専用 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 ラッパー。
例外
list
が null
です。
注釈
への list
変更を防ぐために、このラッパーを介してのみを公開 list
します。
読み取り専用のコレクションは、コレクションの変更を妨げるラッパーを持つコレクションです。 基になるコレクションに変更が加えられた場合、読み取り専用コレクションにはそれらの変更が反映されます。
このメソッドは操作です O(1)
。
こちらもご覧ください
適用対象
.NET