Share via


ArrayList.FixedSize メソッド

固定サイズのリスト ラッパーを返します。要素を変更することはできますが、追加や削除はできません。

オーバーロードの一覧

固定サイズの ArrayList ラッパーを返します。

[Visual Basic] Overloads Public Shared Function FixedSize(ArrayList) As ArrayList

[C#] public static ArrayList FixedSize(ArrayList);

[C++] public: static ArrayList* FixedSize(ArrayList*);

[JScript] public static function FixedSize(ArrayList) : ArrayList;

固定サイズの IList ラッパーを返します。

[Visual Basic] Overloads Public Shared Function FixedSize(IList) As IList

[C#] public static IList FixedSize(IList);

[C++] public: static IList* FixedSize(IList*);

[JScript] public static function FixedSize(IList) : IList;

使用例

ArrayList をラップする固定サイズのラッパーを作成する方法を次の例に示します。

 
Imports System
Imports System.Collections
Imports Microsoft.VisualBasic

Public Class SamplesArrayList    
    
    Public Shared Sub Main()
        
        ' Creates and initializes a new ArrayList.
        Dim myAL As New ArrayList()
        myAL.Add("The")
        myAL.Add("quick")
        myAL.Add("brown")
        myAL.Add("fox")
        myAL.Add("jumped")
        myAL.Add("over")
        myAL.Add("the")
        myAL.Add("lazy")
        myAL.Add("dog")
        
        ' Create a fixed-size wrapper around the ArrayList.
        Dim myFixedSizeAL As ArrayList = ArrayList.FixedSize(myAL)
        
        ' Display whether the ArrayLists have a fixed size or not.
        Dim msg As String
        If myAL.IsFixedSize Then
            msg = "has a fixed size"
        Else
            msg = "does not have a fixed size"
        End If
        Console.WriteLine("myAL {0}.", msg)
        If myFixedSizeAL.IsFixedSize Then
            msg = "has a fixed size"
        Else
            msg = "does not have a fixed size"
        End If
        Console.WriteLine("myFixedSizeAL {0}.", msg)
        Console.WriteLine()
        
        ' Display both ArrayLists.
        Console.WriteLine("Initially,")
        Console.Write("Standard  :")
        PrintValues(myAL, " "c)
        Console.Write("Fixed size:")
        PrintValues(myFixedSizeAL, " "c)
        
        ' Sort is allowed in the fixed-size ArrayList.
        myFixedSizeAL.Sort()
        
        ' Display both ArrayLists.
        Console.WriteLine("After Sort,")
        Console.Write("Standard  :")
        PrintValues(myAL, " "c)
        Console.Write("Fixed size:")
        PrintValues(myFixedSizeAL, " "c)
        
        ' Reverse is allowed in the fixed-size ArrayList.
        myFixedSizeAL.Reverse()
        
        ' Display both ArrayLists.
        Console.WriteLine("After Reverse,")
        Console.Write("Standard  :")
        PrintValues(myAL, " "c)
        Console.Write("Fixed size:")
        PrintValues(myFixedSizeAL, " "c)
        
        ' Add an element to the standard ArrayList.
        myAL.Add("AddMe")
        
        ' Display both ArrayLists.
        Console.WriteLine("After adding to the standard ArrayList,")
        Console.Write("Standard  :")
        PrintValues(myAL, " "c)
        Console.Write("Fixed size:")
        PrintValues(myFixedSizeAL, " "c)
        Console.WriteLine()
        
        ' Adding or inserting elements to the fixed-size ArrayList throws an exception.
        Try
            myFixedSizeAL.Add("AddMe2")
        Catch myException As Exception
            Console.WriteLine("Exception: " + myException.ToString())
        End Try
        Try
            myFixedSizeAL.Insert(3, "InsertMe")
        Catch myException As Exception
            Console.WriteLine("Exception: " + myException.ToString())
        End Try
    End Sub 'Main
    
    
    Public Shared Sub PrintValues(myList As IEnumerable, mySeparator As Char)
        Dim myEnumerator As System.Collections.IEnumerator = _
           myList.GetEnumerator()
        While myEnumerator.MoveNext()
            Console.Write("{0}{1}", mySeparator, myEnumerator.Current)
        End While
        Console.WriteLine()
    End Sub
End Class

' This code produces the following output.
' 
' myAL does not have a fixed size.
' myFixedSizeAL has a fixed size.
' 
' Initially,
' Standard  : The quick brown fox jumped over the lazy dog
' Fixed size: The quick brown fox jumped over the lazy dog
' After Sort,
' Standard  : brown dog fox jumped lazy over quick the The
' Fixed size: brown dog fox jumped lazy over quick the The
' After Reverse,
' Standard  : The the quick over lazy jumped fox dog brown
' Fixed size: The the quick over lazy jumped fox dog brown
' After adding to the standard ArrayList,
' Standard  : The the quick over lazy jumped fox dog brown AddMe
' Fixed size: The the quick over lazy jumped fox dog brown AddMe
' 
' Exception: System.NotSupportedException: Collection was of a fixed size.
'    at System.Collections.FixedSizeArrayList.Add(Object obj)
'    at SamplesArrayList.Main()
' Exception: System.NotSupportedException: Collection was of a fixed size.
'    at System.Collections.FixedSizeArrayList.Insert(Int32 index, Object obj)
'    at SamplesArrayList.Main()

[C#] 
using System;
using System.Collections;
public class SamplesArrayList  {

   public static void Main()  {

      // Creates and initializes a new ArrayList.
      ArrayList myAL = new ArrayList();
      myAL.Add( "The" );
      myAL.Add( "quick" );
      myAL.Add( "brown" );
      myAL.Add( "fox" );
      myAL.Add( "jumped" );
      myAL.Add( "over" );
      myAL.Add( "the" );
      myAL.Add( "lazy" );
      myAL.Add( "dog" );

      // Create a fixed-size wrapper around the ArrayList.
      ArrayList myFixedSizeAL = ArrayList.FixedSize( myAL );

      // Display whether the ArrayLists have a fixed size or not.
      Console.WriteLine( "myAL {0}.", myAL.IsFixedSize ? "has a fixed size" : "does not have a fixed size" );
      Console.WriteLine( "myFixedSizeAL {0}.", myFixedSizeAL.IsFixedSize ? "has a fixed size" : "does not have a fixed size" );
      Console.WriteLine();

      // Display both ArrayLists.
      Console.WriteLine( "Initially," );
      Console.Write( "Standard  :" );
      PrintValues( myAL, ' ' );
      Console.Write( "Fixed size:" );
      PrintValues( myFixedSizeAL, ' ' );

      // Sort is allowed in the fixed-size ArrayList.
      myFixedSizeAL.Sort();

      // Display both ArrayLists.
      Console.WriteLine( "After Sort," );
      Console.Write( "Standard  :" );
      PrintValues( myAL, ' ' );
      Console.Write( "Fixed size:" );
      PrintValues( myFixedSizeAL, ' ' );

      // Reverse is allowed in the fixed-size ArrayList.
      myFixedSizeAL.Reverse();

      // Display both ArrayLists.
      Console.WriteLine( "After Reverse," );
      Console.Write( "Standard  :" );
      PrintValues( myAL, ' ' );
      Console.Write( "Fixed size:" );
      PrintValues( myFixedSizeAL, ' ' );

      // Add an element to the standard ArrayList.
      myAL.Add( "AddMe" );

      // Display both ArrayLists.
      Console.WriteLine( "After adding to the standard ArrayList," );
      Console.Write( "Standard  :" );
      PrintValues( myAL, ' ' );
      Console.Write( "Fixed size:" );
      PrintValues( myFixedSizeAL, ' ' );
      Console.WriteLine();

      // Adding or inserting elements to the fixed-size ArrayList throws an exception.
      try  {
         myFixedSizeAL.Add( "AddMe2" );
      } catch ( Exception myException )  {
         Console.WriteLine("Exception: " + myException.ToString());
      }
      try  {
         myFixedSizeAL.Insert( 3, "InsertMe" );
      } catch ( Exception myException )  {
         Console.WriteLine("Exception: " + myException.ToString());
      }
   }

   public static void PrintValues( IEnumerable myList, char mySeparator )  {
      System.Collections.IEnumerator myEnumerator = myList.GetEnumerator();
      while ( myEnumerator.MoveNext() )
         Console.Write( "{0}{1}", mySeparator, myEnumerator.Current );
      Console.WriteLine();
   }
}
/*
This code produces the following output.

myAL does not have a fixed size.
myFixedSizeAL has a fixed size.

Initially,
Standard  : The quick brown fox jumped over the lazy dog
Fixed size: The quick brown fox jumped over the lazy dog
After Sort,
Standard  : brown dog fox jumped lazy over quick the The
Fixed size: brown dog fox jumped lazy over quick the The
After Reverse,
Standard  : The the quick over lazy jumped fox dog brown
Fixed size: The the quick over lazy jumped fox dog brown
After adding to the standard ArrayList,
Standard  : The the quick over lazy jumped fox dog brown AddMe
Fixed size: The the quick over lazy jumped fox dog brown AddMe

Exception: System.NotSupportedException: Collection was of a fixed size.
   at System.Collections.FixedSizeArrayList.Add(Object obj)
   at SamplesArrayList.Main()
Exception: System.NotSupportedException: Collection was of a fixed size.
   at System.Collections.FixedSizeArrayList.Insert(Int32 index, Object obj)
   at SamplesArrayList.Main()
*/ 

[C++] 
#using <mscorlib.dll>
 using namespace System;
 using namespace System::Collections;

void PrintValues( IEnumerable* myList, String* mySeparator );
 
int main()  {

       String* cSeparator = " ";
 
       // Creates and initializes a new ArrayList.
       ArrayList* myAL = new ArrayList();
       myAL->Add( S"The" );
       myAL->Add( S"quick" );
       myAL->Add( S"brown" );
       myAL->Add( S"fox" );
       myAL->Add( S"jumped" );
       myAL->Add( S"over" );
       myAL->Add( S"the" );
       myAL->Add( S"lazy" );
       myAL->Add( S"dog" );
 
       // Creates a fixed-size wrapper around the ArrayList.
       ArrayList* myFixedSizeAL = ArrayList::FixedSize( myAL );
 
       // Displays whether the ArrayLists have a fixed size or not.
       String* strRes =  myAL->IsFixedSize ? "has a fixed size" : "does not have a fixed size";
       Console::WriteLine( "myAL {0}.",strRes );
       String* strFixedRes = myFixedSizeAL->IsFixedSize ? "has a fixed size" : "does not have a fixed size";
       Console::WriteLine( "myFixedSizeAL {0}.", strFixedRes );
       Console::WriteLine();
 
       // Displays both ArrayLists.
       Console::WriteLine( "Initially," );
       Console::Write( "Standard  :" );
       PrintValues( myAL, cSeparator );
       Console::Write( "Fixed size:" );
       PrintValues( myFixedSizeAL, cSeparator );
 
       // Sort is allowed in the fixed-size ArrayList.
       myFixedSizeAL->Sort();
 
       // Displays both ArrayLists.
       Console::WriteLine( "After Sort," );
       Console::Write( "Standard  :" );
       PrintValues( myAL, cSeparator );
       Console::Write( "Fixed size:" );
       PrintValues( myFixedSizeAL, cSeparator );
 
       // Reverse is allowed in the fixed-size ArrayList.
       myFixedSizeAL->Reverse();
 
       // Displays both ArrayLists.
       Console::WriteLine( "After Reverse," );
       Console::Write( "Standard  :" );
       PrintValues( myAL, cSeparator );
       Console::Write( "Fixed size:" );
       PrintValues( myFixedSizeAL, cSeparator );
 
       // Adds an element to the standard ArrayList.
       myAL->Add( S"AddMe" );
 
       // Displays both ArrayLists.
       Console::WriteLine( "After adding to the standard ArrayList," );
       Console::Write( "Standard  :" );
       PrintValues( myAL, cSeparator );
       Console::Write( "Fixed size:" );
       PrintValues( myFixedSizeAL, cSeparator );
       Console::WriteLine();
 
       // Adding or inserting elements to the fixed-size ArrayList throws an exception.
       try  {
          myFixedSizeAL->Add( S"AddMe2" );
       } catch ( Exception* myException )  {
          Console::WriteLine(String::Concat("Exception: ", myException->ToString()));
       }
       try  {
          myFixedSizeAL->Insert( 3, S"InsertMe" );
       } catch ( Exception* myException )  {
          Console::WriteLine(String::Concat("Exception: ", myException->ToString()));
       }
    }
 
void PrintValues( IEnumerable* myList, String* mySeparator )  {
       System::Collections::IEnumerator* myEnumerator = myList->GetEnumerator();
       while ( myEnumerator->MoveNext() )
          Console::Write( "{0}{1}", mySeparator, myEnumerator->Current );
       Console::WriteLine();
    }

 /*
 This code produces the following output.
 
myAL does not have a fixed size.
myFixedSizeAL has a fixed size.

Initially,
Standard  : The quick brown fox jumped over the lazy dog
Fixed size: The quick brown fox jumped over the lazy dog
After Sort,
Standard  : brown dog fox jumped lazy over quick the The
Fixed size: brown dog fox jumped lazy over quick the The
After Reverse,
Standard  : The the quick over lazy jumped fox dog brown
Fixed size: The the quick over lazy jumped fox dog brown
After adding to the standard ArrayList,
Standard  : The the quick over lazy jumped fox dog brown AddMe
Fixed size: The the quick over lazy jumped fox dog brown AddMe

Exception: System.NotSupportedException: Collection was of a fixed size.
   at System.Collections.FixedSizeArrayList.Add(Object obj)
   at main()
Exception: System.NotSupportedException: Collection was of a fixed size.
   at System.Collections.FixedSizeArrayList.Insert(Int32 index, Object obj)
   at main()
 */ 

[JScript] 
import System;
import System.Collections;


// Creates and initializes a new ArrayList.
var myAL : ArrayList = new ArrayList();
myAL.Add( "The" );
myAL.Add( "quick" );
myAL.Add( "brown" );
myAL.Add( "fox" );
myAL.Add( "jumped" );
myAL.Add( "over" );
myAL.Add( "the" );
myAL.Add( "lazy" );
myAL.Add( "dog" );

// Create a fixed-size wrapper around the ArrayList.
var myFixedSizeAL : ArrayList = ArrayList.FixedSize( myAL );

// Display whether the ArrayLists have a fixed size or not.
Console.WriteLine( "myAL {0}.", myAL.IsFixedSize ? "has a fixed size" : "does not have a fixed size" );
Console.WriteLine( "myFixedSizeAL {0}.", myFixedSizeAL.IsFixedSize ? "has a fixed size" : "does not have a fixed size" );
Console.WriteLine();

// Display both ArrayLists.
Console.WriteLine( "Initially," );
Console.Write( "Standard  :" );
PrintValues( myAL, ' ' );
Console.Write( "Fixed size:" );
PrintValues( myFixedSizeAL, ' ' );

// Sort is allowed in the fixed-size ArrayList.
myFixedSizeAL.Sort();

// Display both ArrayLists.
Console.WriteLine( "After Sort," );
Console.Write( "Standard  :" );
PrintValues( myAL, ' ' );
Console.Write( "Fixed size:" );
PrintValues( myFixedSizeAL, ' ' );

// Reverse is allowed in the fixed-size ArrayList.
myFixedSizeAL.Reverse();

// Display both ArrayLists.
Console.WriteLine( "After Reverse," );
Console.Write( "Standard  :" );
PrintValues( myAL, ' ' );
Console.Write( "Fixed size:" );
PrintValues( myFixedSizeAL, ' ' );

// Add an element to the standard ArrayList.
myAL.Add( "AddMe" );

// Display both ArrayLists.
Console.WriteLine( "After adding to the standard ArrayList," );
Console.Write( "Standard  :" );
PrintValues( myAL, ' ' );
Console.Write( "Fixed size:" );
PrintValues( myFixedSizeAL, ' ' );
Console.WriteLine();

// Adding or inserting elements to the fixed-size ArrayList throws an exception.
try  {
  myFixedSizeAL.Add( "AddMe2" );
} catch ( myException : Exception  )  {
  Console.WriteLine("Exception: " + myException.ToString());
}
try  {
  myFixedSizeAL.Insert( 3, "InsertMe" );
} catch ( myException : Exception )  {
  Console.WriteLine("Exception: " + myException.ToString());
}

 
function PrintValues( myList : IEnumerable, mySeparator : char )  {
   var myEnumerator : System.Collections.IEnumerator  = myList.GetEnumerator();
   while ( myEnumerator.MoveNext() )
      Console.Write( "{0}{1}", mySeparator, myEnumerator.Current );
   Console.WriteLine();
}
 /*
 This code produces the following output.
 
 myAL does not have a fixed size.
 myFixedSizeAL has a fixed size.
 
 Initially,
 Standard  : The quick brown fox jumped over the lazy dog
 Fixed size: The quick brown fox jumped over the lazy dog
 After Sort,
 Standard  : brown dog fox jumped lazy over quick the The
 Fixed size: brown dog fox jumped lazy over quick the The
 After Reverse,
 Standard  : The the quick over lazy jumped fox dog brown
 Fixed size: The the quick over lazy jumped fox dog brown
 After adding to the standard ArrayList,
 Standard  : The the quick over lazy jumped fox dog brown AddMe
 Fixed size: The the quick over lazy jumped fox dog brown AddMe
 
 Exception: System.NotSupportedException: Collection was of a fixed size.
    at System.Collections.FixedSizeArrayList.Add(Object obj)
    at JScript 0.Global Code()
 Exception: System.NotSupportedException: Collection was of a fixed size.
    at System.Collections.FixedSizeArrayList.Insert(Int32 index, Object obj)
    at JScript 0.Global Code()
 */ 

参照

ArrayList クラス | ArrayList メンバ | System.Collections 名前空間