ArrayList.Insert(Int32, Object) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ArrayList 内の指定したインデックスの位置に要素を挿入します。
public:
virtual void Insert(int index, System::Object ^ value);
public virtual void Insert (int index, object value);
public virtual void Insert (int index, object? value);
abstract member Insert : int * obj -> unit
override this.Insert : int * obj -> unit
Public Overridable Sub Insert (index As Integer, value As Object)
パラメーター
- index
- Int32
value
を挿入する位置の、0 から始まるインデックス。
実装
例外
例
次のコード例は、 に要素を挿入する方法を ArrayList示しています。
using namespace System;
using namespace System::Collections;
void PrintValues( IEnumerable^ myList );
int main()
{
// Creates and initializes a new ArrayList using Insert instead of Add.
ArrayList^ myAL = gcnew ArrayList;
myAL->Insert( 0, "The" );
myAL->Insert( 1, "fox" );
myAL->Insert( 2, "jumps" );
myAL->Insert( 3, "over" );
myAL->Insert( 4, "the" );
myAL->Insert( 5, "dog" );
// Creates and initializes a new Queue.
Queue^ myQueue = gcnew Queue;
myQueue->Enqueue( "quick" );
myQueue->Enqueue( "brown" );
// Displays the ArrayList and the Queue.
Console::WriteLine( "The ArrayList initially contains the following:" );
PrintValues( myAL );
Console::WriteLine( "The Queue initially contains the following:" );
PrintValues( myQueue );
// Copies the Queue elements to the ArrayList at index 1.
myAL->InsertRange( 1, myQueue );
// Displays the ArrayList.
Console::WriteLine( "After adding the Queue, the ArrayList now contains:" );
PrintValues( myAL );
// Search for "dog" and add "lazy" before it.
myAL->Insert( myAL->IndexOf( "dog" ), "lazy" );
// Displays the ArrayList.
Console::WriteLine( "After adding \"lazy\", the ArrayList now contains:" );
PrintValues( myAL );
// Add "!!!" at the end.
myAL->Insert( myAL->Count, "!!!" );
// Displays the ArrayList.
Console::WriteLine( "After adding \"!!!\", the ArrayList now contains:" );
PrintValues( myAL );
// Inserting an element beyond Count throws an exception.
try
{
myAL->Insert( myAL->Count + 1, "anystring" );
}
catch ( Exception^ myException )
{
Console::WriteLine( "Exception: {0}", myException );
}
}
void PrintValues( IEnumerable^ myList )
{
IEnumerator^ myEnum = myList->GetEnumerator();
while ( myEnum->MoveNext() )
{
Object^ obj = safe_cast<Object^>(myEnum->Current);
Console::Write( " {0}", obj );
}
Console::WriteLine();
}
/*
This code produces the following output.
The ArrayList initially contains the following:
The fox jumps over the dog
The Queue initially contains the following:
quick brown
After adding the Queue, the ArrayList now contains:
The quick brown fox jumps over the dog
After adding "lazy", the ArrayList now contains:
The quick brown fox jumps over the lazy dog
After adding "!!!", the ArrayList now contains:
The quick brown fox jumps over the lazy dog !!!
Exception: System.ArgumentOutOfRangeException: Insertion index was out of range. Must be non-negative and less than or equal to size.
Parameter name: index
at System.Collections.ArrayList.Insert(Int32 index, Object value)
at SamplesArrayList.Main()
*/
using System;
using System.Collections;
public class SamplesArrayList {
public static void Main() {
// Creates and initializes a new ArrayList using Insert instead of Add.
ArrayList myAL = new ArrayList();
myAL.Insert( 0, "The" );
myAL.Insert( 1, "fox" );
myAL.Insert( 2, "jumps" );
myAL.Insert( 3, "over" );
myAL.Insert( 4, "the" );
myAL.Insert( 5, "dog" );
// Creates and initializes a new Queue.
Queue myQueue = new Queue();
myQueue.Enqueue( "quick" );
myQueue.Enqueue( "brown" );
// Displays the ArrayList and the Queue.
Console.WriteLine( "The ArrayList initially contains the following:" );
PrintValues( myAL );
Console.WriteLine( "The Queue initially contains the following:" );
PrintValues( myQueue );
// Copies the Queue elements to the ArrayList at index 1.
myAL.InsertRange( 1, myQueue );
// Displays the ArrayList.
Console.WriteLine( "After adding the Queue, the ArrayList now contains:" );
PrintValues( myAL );
// Search for "dog" and add "lazy" before it.
myAL.Insert( myAL.IndexOf( "dog" ), "lazy" );
// Displays the ArrayList.
Console.WriteLine( "After adding \"lazy\", the ArrayList now contains:" );
PrintValues( myAL );
// Add "!!!" at the end.
myAL.Insert( myAL.Count, "!!!" );
// Displays the ArrayList.
Console.WriteLine( "After adding \"!!!\", the ArrayList now contains:" );
PrintValues( myAL );
// Inserting an element beyond Count throws an exception.
try {
myAL.Insert( myAL.Count+1, "anystring" );
} catch ( Exception myException ) {
Console.WriteLine("Exception: " + myException.ToString());
}
}
public static void PrintValues( IEnumerable myList ) {
foreach ( Object obj in myList )
Console.Write( " {0}", obj );
Console.WriteLine();
}
}
/*
This code produces the following output.
The ArrayList initially contains the following:
The fox jumps over the dog
The Queue initially contains the following:
quick brown
After adding the Queue, the ArrayList now contains:
The quick brown fox jumps over the dog
After adding "lazy", the ArrayList now contains:
The quick brown fox jumps over the lazy dog
After adding "!!!", the ArrayList now contains:
The quick brown fox jumps over the lazy dog !!!
Exception: System.ArgumentOutOfRangeException: Insertion index was out of range. Must be non-negative and less than or equal to size.
Parameter name: index
at System.Collections.ArrayList.Insert(int index, Object value)
at SamplesArrayList.Main()
*/
Imports System.Collections
Public Class SamplesArrayList
Public Shared Sub Main()
' Creates and initializes a new ArrayList using Insert instead of Add.
Dim myAL As New ArrayList()
myAL.Insert(0, "The")
myAL.Insert(1, "fox")
myAL.Insert(2, "jumps")
myAL.Insert(3, "over")
myAL.Insert(4, "the")
myAL.Insert(5, "dog")
' Creates and initializes a new Queue.
Dim myQueue As New Queue()
myQueue.Enqueue("quick")
myQueue.Enqueue("brown")
' Displays the ArrayList and the Queue.
Console.WriteLine("The ArrayList initially contains the following:")
PrintValues(myAL)
Console.WriteLine("The Queue initially contains the following:")
PrintValues(myQueue)
' Copies the Queue elements to the ArrayList at index 1.
myAL.InsertRange(1, myQueue)
' Displays the ArrayList.
Console.WriteLine("After adding the Queue, the ArrayList now contains:")
PrintValues(myAL)
' Search for "dog" and add "lazy" before it.
myAL.Insert(myAL.IndexOf("dog"), "lazy")
' Displays the ArrayList.
Console.WriteLine("After adding ""lazy"", the ArrayList now contains:")
PrintValues(myAL)
' Add "!!!" at the end.
myAL.Insert(myAL.Count, "!!!")
' Displays the ArrayList.
Console.WriteLine("After adding ""!!!"", the ArrayList now contains:")
PrintValues(myAL)
' Inserting an element beyond Count throws an exception.
Try
myAL.Insert(myAL.Count + 1, "anystring")
Catch myException As Exception
Console.WriteLine("Exception: " + myException.ToString())
End Try
End Sub
Public Shared Sub PrintValues(myList As IEnumerable)
Dim obj As [Object]
For Each obj In myList
Console.Write(" {0}", obj)
Next obj
Console.WriteLine()
End Sub
End Class
' This code produces the following output.
'
' The ArrayList initially contains the following:
' The fox jumps over the dog
' The Queue initially contains the following:
' quick brown
' After adding the Queue, the ArrayList now contains:
' The quick brown fox jumps over the dog
' After adding "lazy", the ArrayList now contains:
' The quick brown fox jumps over the lazy dog
' After adding "!!!", the ArrayList now contains:
' The quick brown fox jumps over the lazy dog !!!
' Exception: System.ArgumentOutOfRangeException: Insertion index was out of range. Must be non-negative and less than or equal to size.
' Parameter name: index
' at System.Collections.ArrayList.Insert(Int32 index, Object value)
' at SamplesArrayList.Main()
注釈
ArrayList は null
有効な値として受け取り、重複する要素を許可します。
が既に と等しいCapacity場合Count、 のArrayList容量は内部配列を自動的に再割り当てすることで増加し、新しい要素が追加される前に既存の要素が新しい配列にコピーされます。
が とCountvalue
等しい場合index
は、 のArrayList末尾に が追加されます。
リストなどの連続する要素のコレクションでは、新しい要素を挿入するために、挿入位置より後にある要素の位置が繰り下げられます。 コレクションにインデックスがある場合、移動した要素のインデックスも更新されます。 この動作は、要素が概念的にバケットにグループ化されているハッシュ テーブルなどのコレクションには適用されません。
このメソッドは 操作です O(n)
。ここで n
、 は Countです。
適用対象
こちらもご覧ください
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET