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 は追加する要素の数、 m は Count です。
使用例
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