次の方法で共有


ArrayList.AddRange メソッド

ICollection の要素を ArrayList の末尾に追加します。

Public Overridable Sub AddRange( _
   ByVal c As ICollection _)
[C#]
public virtual void AddRange(ICollectionc);
[C++]
public: virtual void AddRange(ICollection* c);
[JScript]
public function AddRange(
   c : ICollection);

パラメータ

  • c
    ArrayList の末尾に要素が追加される ICollection 。コレクション自体を null 参照 (Visual Basic では Nothing) にすることはできませんが、コレクションに格納する要素は null 参照 (Nothing) であってもかまいません。

例外

例外の種類 条件
ArgumentNullException c が null 参照 (Visual Basic では Nothing) です。
NotSupportedException ArrayList が読み取り専用です。

または

ArrayList が固定サイズです。

解説

ArrayList は、 null 参照 (Visual Basic では Nothing) を有効な値として受け取り、要素の重複を許可します。

ICollection 内の要素の順序は、 ArrayList に保持されます。

新しい Count (現在の Count とコレクションのサイズの合計) が Capacity より大きくなった場合、リストの容量は、元の容量の 2 倍かまたは新しい Count のうち、いずれか大きい方になります。内部配列は、新しい要素を格納するために自動的に再割り当てされ、既存の要素は、新しい要素が追加される前に、新しい配列にコピーされます。

Capacity を増やさずに新しい要素を ArrayList に格納できる場合、このメソッドは O(n) 操作になります。ここで、 n は、追加する要素の数です。新しい要素を格納するために容量を増やす必要がある場合、このメソッドは O(n + m) 操作になります。ここで、 n は追加する要素の数、 mCount です。

使用例

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")
        
        ' Creates and initializes a new Queue.
        Dim myQueue As New Queue()
        myQueue.Enqueue("jumped")
        myQueue.Enqueue("over")
        myQueue.Enqueue("the")
        myQueue.Enqueue("lazy")
        myQueue.Enqueue("dog")
        
        ' Displays the ArrayList and the Queue.
        Console.WriteLine("The ArrayList initially contains the following:")
        PrintValues(myAL, ControlChars.Tab)
        Console.WriteLine("The Queue initially contains the following:")
        PrintValues(myQueue, ControlChars.Tab)
        
        ' Copies the Queue elements to the end of the ArrayList.
        myAL.AddRange(myQueue)
        
        ' Displays the ArrayList.
        Console.WriteLine("The ArrayList now contains the following:")
        PrintValues(myAL, ControlChars.Tab)
    End Sub
    
    
    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.
' 
' The ArrayList initially contains the following:
'     The    quick    brown    fox
' The Queue initially contains the following:
'     jumped    over    the    lazy    dog
' The ArrayList now contains the following:
'     The    quick    brown    fox    jumped    over    the    lazy    dog 

[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" );

      // Creates and initializes a new Queue.
      Queue myQueue = new Queue();
      myQueue.Enqueue( "jumped" );
      myQueue.Enqueue( "over" );
      myQueue.Enqueue( "the" );
      myQueue.Enqueue( "lazy" );
      myQueue.Enqueue( "dog" );

      // Displays the ArrayList and the Queue.
      Console.WriteLine( "The ArrayList initially contains the following:" );
      PrintValues( myAL, '\t' );
      Console.WriteLine( "The Queue initially contains the following:" );
      PrintValues( myQueue, '\t' );

      // Copies the Queue elements to the end of the ArrayList.
      myAL.AddRange( myQueue );

      // Displays the ArrayList.
      Console.WriteLine( "The ArrayList now contains the following:" );
      PrintValues( myAL, '\t' );
   }

   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.

The ArrayList initially contains the following:
    The    quick    brown    fox
The Queue initially contains the following:
    jumped    over    the    lazy    dog
The ArrayList now contains the following:
    The    quick    brown    fox    jumped    over    the    lazy    dog
*/ 

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

void PrintValues( IEnumerable* myList, String* mySeparator );
 
void main()  {
 
    // 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" );
 
    // Creates and initializes a new Queue.
    Queue* myQueue = new Queue();
    myQueue->Enqueue( S"jumped" );
    myQueue->Enqueue( S"over" );
    myQueue->Enqueue( S"the" );
    myQueue->Enqueue( S"lazy" );
    myQueue->Enqueue( S"dog" );
 
    // Displays the ArrayList and the Queue.
    Console::WriteLine( "The ArrayList initially contains the following:" );
    PrintValues( myAL, S"\t" );
    Console::WriteLine( "The Queue initially contains the following:" );
    PrintValues( myQueue, S"\t" );
 
    // Copies the Queue elements to the end of the ArrayList.
    myAL->AddRange( myQueue );
 
    // Displays the ArrayList.
    Console::WriteLine( "The ArrayList now contains the following:" );
    PrintValues( myAL, S"\t" );
    }
 
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.
 
 The ArrayList initially contains the following:
     The    quick    brown    fox
 The Queue initially contains the following:
     jumped    over    the    lazy    dog
 The ArrayList now contains the following:
     The    quick    brown    fox    jumped    over    the    lazy    dog
 */ 

[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" );

// Creates and initializes a new Queue.
var myQueue : Queue  = new Queue();
myQueue.Enqueue( "jumped" );
myQueue.Enqueue( "over" );
myQueue.Enqueue( "the" );
myQueue.Enqueue( "lazy" );
myQueue.Enqueue( "dog" );

// Displays the ArrayList and the Queue.
Console.WriteLine( "The ArrayList initially contains the following:" );
PrintValues( myAL, '\t' );
Console.WriteLine( "The Queue initially contains the following:" );
PrintValues( myQueue, '\t' );

// Copies the Queue elements to the end of the ArrayList.
myAL.AddRange( myQueue );

// Displays the ArrayList.
Console.WriteLine( "The ArrayList now contains the following:" );
PrintValues( myAL, '\t' );

 
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.
 
 The ArrayList initially contains the following:
     The    quick    brown    fox
 The Queue initially contains the following:
     jumped    over    the    lazy    dog
 The ArrayList now contains the following:
     The    quick    brown    fox    jumped    over    the    lazy    dog
 */ 

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

参照

ArrayList クラス | ArrayList メンバ | System.Collections 名前空間 | ICollection | Capacity | Count | Add | InsertRange | SetRange | GetRange | RemoveRange