Array.Copy Array.Copy Array.Copy Array.Copy Method

定義

一方の Array の要素範囲を他方の Array にコピーし、必要に応じて型キャストとボックス化を実行します。 Copies a range of elements in one Array to another Array and performs type casting and boxing as required.

オーバーロード

Copy(Array, Int64, Array, Int64, Int64) Copy(Array, Int64, Array, Int64, Int64) Copy(Array, Int64, Array, Int64, Int64) Copy(Array, Int64, Array, Int64, Int64)

指定したコピー元インデックスを開始位置として Array から要素の範囲をコピーし、指定したコピー先インデックスを開始位置として他の Array にそれらの要素を貼り付けます。 Copies a range of elements from an Array starting at the specified source index and pastes them to another Array starting at the specified destination index. 長さとインデックスは、64 ビット整数として指定します。 The length and the indexes are specified as 64-bit integers.

Copy(Array, Int32, Array, Int32, Int32) Copy(Array, Int32, Array, Int32, Int32) Copy(Array, Int32, Array, Int32, Int32) Copy(Array, Int32, Array, Int32, Int32)

指定したコピー元インデックスを開始位置として Array から要素の範囲をコピーし、指定したコピー先インデックスを開始位置として他の Array にそれらの要素を貼り付けます。 Copies a range of elements from an Array starting at the specified source index and pastes them to another Array starting at the specified destination index. 長さとインデックスは、32 ビット整数として指定します。 The length and the indexes are specified as 32-bit integers.

Copy(Array, Array, Int64) Copy(Array, Array, Int64) Copy(Array, Array, Int64) Copy(Array, Array, Int64)

最初の要素を開始位置として Array から要素の範囲をコピーし、最初の要素を開始位置として他の Array にそれらの要素を貼り付けます。 Copies a range of elements from an Array starting at the first element and pastes them into another Array starting at the first element. 長さは 64 ビット整数値として指定します。 The length is specified as a 64-bit integer.

Copy(Array, Array, Int32) Copy(Array, Array, Int32) Copy(Array, Array, Int32) Copy(Array, Array, Int32)

最初の要素を開始位置として Array から要素の範囲をコピーし、最初の要素を開始位置として他の Array にそれらの要素を貼り付けます。 Copies a range of elements from an Array starting at the first element and pastes them into another Array starting at the first element. 長さは 32 ビット整数値として指定します。 The length is specified as a 32-bit integer.

Copy(Array, Int64, Array, Int64, Int64) Copy(Array, Int64, Array, Int64, Int64) Copy(Array, Int64, Array, Int64, Int64) Copy(Array, Int64, Array, Int64, Int64)

指定したコピー元インデックスを開始位置として Array から要素の範囲をコピーし、指定したコピー先インデックスを開始位置として他の Array にそれらの要素を貼り付けます。 Copies a range of elements from an Array starting at the specified source index and pastes them to another Array starting at the specified destination index. 長さとインデックスは、64 ビット整数として指定します。 The length and the indexes are specified as 64-bit integers.

public:
 static void Copy(Array ^ sourceArray, long sourceIndex, Array ^ destinationArray, long destinationIndex, long length);
public static void Copy (Array sourceArray, long sourceIndex, Array destinationArray, long destinationIndex, long length);
static member Copy : Array * int64 * Array * int64 * int64 -> unit
Public Shared Sub Copy (sourceArray As Array, sourceIndex As Long, destinationArray As Array, destinationIndex As Long, length As Long)
パラメーター
sourceArray
Array Array Array Array

コピーするデータを格納している Array The Array that contains the data to copy.

sourceIndex
Int64 Int64 Int64 Int64

コピー操作の開始位置となる sourceArray 内のインデックスを表す 64 ビット整数。 A 64-bit integer that represents the index in the sourceArray at which copying begins.

destinationArray
Array Array Array Array

データを受け取る Array The Array that receives the data.

destinationIndex
Int64 Int64 Int64 Int64

格納を開始する destinationArray 内のインデックスを表す 64 ビット整数。 A 64-bit integer that represents the index in the destinationArray at which storing begins.

length
Int64 Int64 Int64 Int64

コピーする要素の数を表す 64 ビット整数。 A 64-bit integer that represents the number of elements to copy. この整数は 0 から MaxValue (この値を含む) の間である必要があります。 The integer must be between zero and MaxValue, inclusive.

例外

sourceArraynullです。 sourceArray is null. - または - -or- destinationArraynullです。 destinationArray is null.

sourceArraydestinationArray のランクが異なります。 sourceArray and destinationArray have different ranks.

sourceArraydestinationArray の型は互換性がありません。 sourceArray and destinationArray are of incompatible types.

sourceArray の少なくとも 1 つの要素が destinationArray の型にキャストできません。 At least one element in sourceArray cannot be cast to the type of destinationArray.

sourceIndex が、sourceArray の有効なインデックスの範囲外です。 sourceIndex is outside the range of valid indexes for the sourceArray. - または - -or- destinationIndex が、destinationArray の有効なインデックスの範囲外です。 destinationIndex is outside the range of valid indexes for the destinationArray. - または - -or- length が 0 未満であるか、または MaxValue を超えています。 length is less than 0 or greater than MaxValue.

lengthsourceIndex から最後の sourceArray までの要素の数を超えています。 length is greater than the number of elements from sourceIndex to the end of sourceArray. - または - -or- lengthdestinationIndex から最後の destinationArray までの要素の数を超えています。 length is greater than the number of elements from destinationIndex to the end of destinationArray.

次のコード例は、いずれかからコピーする方法を示しています。Array型のObjectArray整数型。The following code example shows how to copy from one Array of type Object to another Array of type integer.

using namespace System;
void PrintValues( Array^ myArr );
void main()
{
   
   // Creates and initializes a new Array instance of type Int32.
   Array^ myIntArray = Array::CreateInstance( Type::GetType(  "System.Int32" ), 5 );
   for ( int i = myIntArray->GetLowerBound( 0 ); i <= myIntArray->GetUpperBound( 0 ); i++ )
      myIntArray->SetValue( i + 1, i );
   
   // Creates and initializes a new Array instance of type Object.
   Array^ myObjArray = Array::CreateInstance( Type::GetType(  "System.Object" ), 5 );
   for ( int i = myObjArray->GetLowerBound( 0 ); i <= myObjArray->GetUpperBound( 0 ); i++ )
      myObjArray->SetValue( i + 26, i );
   
   // Displays the initial values of both arrays.
   Console::WriteLine(  "Int32 array:" );
   PrintValues( myIntArray );
   Console::WriteLine(  "Object array:" );
   PrintValues( myObjArray );
   
   // Copies the first element from the Int32 array to the Object array.
   Array::Copy( myIntArray, myIntArray->GetLowerBound( 0 ), myObjArray, myObjArray->GetLowerBound( 0 ), 1 );
   
   // Copies the last two elements from the Object array to the Int32 array.
   Array::Copy( myObjArray, myObjArray->GetUpperBound( 0 ) - 1, myIntArray, myIntArray->GetUpperBound( 0 ) - 1, 2 );
   
   // Displays the values of the modified arrays.
   Console::WriteLine(  "Int32 array - Last two elements should now be the same as Object array:" );
   PrintValues( myIntArray );
   Console::WriteLine(  "Object array - First element should now be the same as Int32 array:" );
   PrintValues( myObjArray );
}

void PrintValues( Array^ myArr )
{
   System::Collections::IEnumerator^ myEnumerator = myArr->GetEnumerator();
   int i = 0;
   int cols = myArr->GetLength( myArr->Rank - 1 );
   while ( myEnumerator->MoveNext() )
   {
      if ( i < cols )
      {
         i++;
      }
      else
      {
         Console::WriteLine();
         i = 1;
      }

      Console::Write(  "\t{0}", myEnumerator->Current );
   }

   Console::WriteLine();
}

/*
 This code produces the following output.
 
 Int32 array:
     1    2    3    4    5
 Object array:
     26    27    28    29    30
 Int32 array - Last two elements should now be the same as Object array:
     1    2    3    29    30
 Object array - First element should now be the same as Int32 array:
     1    27    28    29    30
 */
using System;
public class SamplesArray  {

   public static void Main()  {

      // Creates and initializes a new Array of type Int32.
      Array myIntArray=Array.CreateInstance( typeof(System.Int32), 5 );
      for ( int i = myIntArray.GetLowerBound(0); i <= myIntArray.GetUpperBound(0); i++ )
         myIntArray.SetValue( i+1, i );

      // Creates and initializes a new Array of type Object.
      Array myObjArray = Array.CreateInstance( typeof(System.Object), 5 );
      for ( int i = myObjArray.GetLowerBound(0); i <= myObjArray.GetUpperBound(0); i++ )
         myObjArray.SetValue( i+26, i );

      // Displays the initial values of both arrays.
      Console.WriteLine( "Int32 array:" );
      PrintValues( myIntArray );
      Console.WriteLine( "Object array:" );
      PrintValues( myObjArray );

      // Copies the first element from the Int32 array to the Object array.
      Array.Copy( myIntArray, myIntArray.GetLowerBound(0), myObjArray, myObjArray.GetLowerBound(0), 1 );

      // Copies the last two elements from the Object array to the Int32 array.
      Array.Copy( myObjArray, myObjArray.GetUpperBound(0) - 1, myIntArray, myIntArray.GetUpperBound(0) - 1, 2 );

      // Displays the values of the modified arrays.
      Console.WriteLine( "Int32 array - Last two elements should now be the same as Object array:" );
      PrintValues( myIntArray );
      Console.WriteLine( "Object array - First element should now be the same as Int32 array:" );
      PrintValues( myObjArray );
   }


   public static void PrintValues( Array myArr )  {
      System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();
      int i = 0;
      int cols = myArr.GetLength( myArr.Rank - 1 );
      while ( myEnumerator.MoveNext() )  {
         if ( i < cols )  {
            i++;
         } else  {
            Console.WriteLine();
            i = 1;
         }
         Console.Write( "\t{0}", myEnumerator.Current );
      }
      Console.WriteLine();
   }
}
/*
This code produces the following output.

Int32 array:
    1    2    3    4    5
Object array:
    26    27    28    29    30
Int32 array - Last two elements should now be the same as Object array:
    1    2    3    29    30
Object array - First element should now be the same as Int32 array:
    1    27    28    29    30
*/
Imports System
Imports Microsoft.VisualBasic

Public Class SamplesArray    
    
    Public Shared Sub Main()
        
        ' Creates and initializes a new Array of type Int32.
        Dim myIntArray As Array = _
           Array.CreateInstance(GetType(System.Int32), 5)
        Dim i As Integer
        For i = myIntArray.GetLowerBound(0) To myIntArray.GetUpperBound(0)
            myIntArray.SetValue(i + 1, i)
        Next i 
        ' Creates and initializes a new Array of type Object.
        Dim myObjArray As Array = _
           Array.CreateInstance(GetType(System.Object), 5)
        For i = myObjArray.GetLowerBound(0) To myObjArray.GetUpperBound(0)
            myObjArray.SetValue(i + 26, i)
        Next i 
        ' Displays the initial values of both arrays.
        Console.WriteLine("Int32 array:")
        PrintValues(myIntArray)
        Console.WriteLine("Object array:")
        PrintValues(myObjArray)
        
        ' Copies the first element from the Int32 array to the Object array.
        Array.Copy(myIntArray, myIntArray.GetLowerBound(0), myObjArray, _
           myObjArray.GetLowerBound(0), 1)
        
        ' Copies the last two elements from the Object array to the Int32 array.
        Array.Copy(myObjArray, myObjArray.GetUpperBound(0) - 1, myIntArray, _
           myIntArray.GetUpperBound(0) - 1, 2)
        
        ' Displays the values of the modified arrays.
        Console.WriteLine("Int32 array - Last two elements should now be " _
           + "the same as Object array:")
        PrintValues(myIntArray)
        Console.WriteLine("Object array - First element should now be the " _
           + "same as Int32 array:")
        PrintValues(myObjArray)
    End Sub
    
    Public Shared Sub PrintValues(myArr As Array)
        Dim myEnumerator As System.Collections.IEnumerator = _
           myArr.GetEnumerator()
        Dim i As Integer = 0
        Dim cols As Integer = myArr.GetLength((myArr.Rank - 1))
        While myEnumerator.MoveNext()
            If i < cols Then
                i += 1
            Else
                Console.WriteLine()
                i = 1
            End If
            Console.Write(ControlChars.Tab + "{0}", myEnumerator.Current)
        End While
        Console.WriteLine()
    End Sub
End Class

' This code produces the following output.
' 
' Int32 array:
'     1    2    3    4    5
' Object array:
'     26    27    28    29    30
' Int32 array - Last two elements should now be the same as Object array:
'     1    2    3    29    30
' Object array - First element should now be the same as Int32 array:
'     1    27    28    29    30

注釈

sourceArraydestinationArrayパラメーターは、同じ次元数をいる必要があります。The sourceArray and destinationArray parameters must have the same number of dimensions. さらに、destinationArray次元されて既にする必要があり、十分な数の要素から開始する必要があります、destinationIndexコピーされたデータに対応する位置。In addition, destinationArray must already have been dimensioned and must have a sufficient number of elements starting from the destinationIndex position to accommodate the copied data.

多次元配列間でコピーする場合、配列のように動作長い 1 次元配列では、場所の行 (または列) が概念的にレイアウトされるエンド ツー エンドです。When copying between multidimensional arrays, the array behaves like a long one-dimensional array, where the rows (or columns) are conceptually laid end-to-end. たとえば、配列を持つ 3 つの行 (または列) 4 つの要素の配列の先頭から、各コピーの 6 つの要素の場合は最初の行 (または列) の 4 つすべての要素の最初の 2 つの要素、2 番目の行 (または列) がコピーします。For example, if an array has three rows (or columns) with four elements each, copying six elements from the beginning of the array would copy all four elements of the first row (or column) and the first two elements of the second row (or column). 3 番目の行 (または列) の 2 番目の要素からコピーを開始するsourceIndexさらに 2 つの 2 番目の行 (または列) の長さを加算結果の最初の行 (または列) の上限があります。To start copying from the second element of the third row (or column), sourceIndex must be the upper bound of the first row (or column) plus the length of the second row (or column) plus two.

場合sourceArraydestinationArray重なっているため、のこのメソッドの動作はまるでの元の値sourceArrayする前に一時的な場所に保持されたdestinationArrayが上書きされます。If sourceArray and destinationArray overlap, this method behaves as if the original values of sourceArray were preserved in a temporary location before destinationArray is overwritten.

[C++][C++]

このメソッドは、標準の C/C++ 関数memmoveではなく、memcpyします。This method is equivalent to the standard C/C++ function memmove, not memcpy.

配列には、参照型の配列または値型の配列を指定できます。The arrays can be reference-type arrays or value-type arrays. 型のダウン キャストを実行すると、必要に応じて。Type downcasting is performed, as required.

  • 参照型の配列から値型の配列にコピーするときは、各要素がボックス化解除し、コピーします。When copying from a reference-type array to a value-type array, each element is unboxed and then copied. 参照型の配列に値型の配列からコピーする場合は、各要素がボックス化され、コピーされます。When copying from a value-type array to a reference-type array, each element is boxed and then copied.

  • 参照型または値型の配列からコピーするとき、 Object 、配列、Objectがそれぞれの値または参照を保持するために作成され、コピーします。When copying from a reference-type or value-type array to an Object array, an Object is created to hold each value or reference and then copied. コピーするとき、Object可能であれば、参照型または値型の配列と、割り当て先の配列は、InvalidCastExceptionがスローされます。When copying from an Object array to a reference-type or value-type array and the assignment is not possible, an InvalidCastException is thrown.

  • 場合sourceArraydestinationArray両方の参照型の配列または型の両方の配列であるObject、シャロー コピーを実行します。If sourceArray and destinationArray are both reference-type arrays or are both arrays of type Object, a shallow copy is performed. 簡易コピーをArrayは、新しいArray元と同じ要素への参照を格納しているArrayします。A shallow copy of an Array is a new Array containing references to the same elements as the original Array. 要素自体または要素が参照はコピーされません。The elements themselves or anything referenced by the elements are not copied. 詳細がこれに対し、コピー、Array要素と要素が参照する直接的または間接的にすべてコピーします。In contrast, a deep copy of an Array copies the elements and everything directly or indirectly referenced by the elements.

ArrayTypeMismatchExceptionが、互換性のない型が配列である場合にスローされます。An ArrayTypeMismatchException is thrown if the arrays are of incompatible types. 型の互換性の定義は次のとおりです。Type compatibility is defined as follows:

  • 型がそれ自体との互換性です。A type is compatible with itself.

  • 値型と互換性がObjectとその値の型によって実装されたインターフェイス型を使用します。A value type is compatible with Object and with an interface type implemented by that value type. 値型では、直接そのインターフェイスを実装している場合にのみ、インターフェイスに接続されていると見なされます。A value type is considered connected to an interface only if it implements that interface directly. 接続されていない型に互換性がありません。Disconnected types are not compatible.

  • 2 つの組み込みの (定義済みの) 値の型は互換性のある拡大変換を元の型から変換先の型へのコピーがある場合です。Two intrinsic (predefined) value types are compatible if copying from the source type to the destination type is a widening conversion. 拡大変換では縮小変換情報が失われることができますが、については、失われます。A widening conversion never loses information, whereas a narrowing conversion can lose information. たとえばは拡大変換は、32 ビット符号付き整数を 64 ビット符号付き整数に変換して、縮小変換は、64 ビット符号付き整数に変換する 32 ビット符号付き整数。For example, converting a 32-bit signed integer to a 64-bit signed integer is a widening conversion, and converting a 64-bit signed integer to a 32-bit signed integer is a narrowing conversion. 変換の詳細については、次を参照してください。Convertします。For more information about conversions, see Convert.

  • 非組み込みの (ユーザー定義) の値型は、自分自身とのみ互換性。A nonintrinsic (user-defined) value type is compatible only with itself.

  • 列挙型への暗黙的な変換があるEnumとその基になる型。Enumerations have an implicit conversion to Enum and to their underlying type.

場合のすべての要素sourceArrayキャスト (たとえば、派生クラスを基底クラスまたはオブジェクトへのインターフェイスから) が必要ですし、1 つまたは複数の要素に対応する型にキャストできないdestinationArrayInvalidCastExceptionがスローされます。If every element in sourceArray requires a downcast (for example, from a base class to a derived class or from an interface to an object) and one or more elements cannot be cast to the corresponding type in destinationArray, an InvalidCastException is thrown.

このメソッドの状態のコピー中に例外をスローする場合destinationArrayが定義されていません。If this method throws an exception while copying, the state of destinationArray is undefined.

このメソッドは O (n) 操作、nlengthします。This method is an O(n) operation, where n is length.

こちらもご覧ください

Copy(Array, Int32, Array, Int32, Int32) Copy(Array, Int32, Array, Int32, Int32) Copy(Array, Int32, Array, Int32, Int32) Copy(Array, Int32, Array, Int32, Int32)

指定したコピー元インデックスを開始位置として Array から要素の範囲をコピーし、指定したコピー先インデックスを開始位置として他の Array にそれらの要素を貼り付けます。 Copies a range of elements from an Array starting at the specified source index and pastes them to another Array starting at the specified destination index. 長さとインデックスは、32 ビット整数として指定します。 The length and the indexes are specified as 32-bit integers.

public:
 static void Copy(Array ^ sourceArray, int sourceIndex, Array ^ destinationArray, int destinationIndex, int length);
public static void Copy (Array sourceArray, int sourceIndex, Array destinationArray, int destinationIndex, int length);
static member Copy : Array * int * Array * int * int -> unit
Public Shared Sub Copy (sourceArray As Array, sourceIndex As Integer, destinationArray As Array, destinationIndex As Integer, length As Integer)
パラメーター
sourceArray
Array Array Array Array

コピーするデータを格納している Array The Array that contains the data to copy.

sourceIndex
Int32 Int32 Int32 Int32

コピー操作の開始位置となる sourceArray 内のインデックスを表す 32 ビット整数。 A 32-bit integer that represents the index in the sourceArray at which copying begins.

destinationArray
Array Array Array Array

データを受け取る Array The Array that receives the data.

destinationIndex
Int32 Int32 Int32 Int32

格納を開始する destinationArray 内のインデックスを表す 32 ビット整数。 A 32-bit integer that represents the index in the destinationArray at which storing begins.

length
Int32 Int32 Int32 Int32

コピーする要素の数を表す 32 ビット整数。 A 32-bit integer that represents the number of elements to copy.

例外

sourceArraynullです。 sourceArray is null. - または - -or- destinationArraynullです。 destinationArray is null.

sourceArraydestinationArray のランクが異なります。 sourceArray and destinationArray have different ranks.

sourceArraydestinationArray の型は互換性がありません。 sourceArray and destinationArray are of incompatible types.

sourceArray の少なくとも 1 つの要素が destinationArray の型にキャストできません。 At least one element in sourceArray cannot be cast to the type of destinationArray.

sourceIndexsourceArray の最初の次元の下限を下回っています。 sourceIndex is less than the lower bound of the first dimension of sourceArray. - または - -or- destinationIndexdestinationArray の最初の次元の下限を下回っています。 destinationIndex is less than the lower bound of the first dimension of destinationArray. - または - -or- length が 0 未満です。 length is less than zero.

lengthsourceIndex から最後の sourceArray までの要素の数を超えています。 length is greater than the number of elements from sourceIndex to the end of sourceArray. - または - -or- lengthdestinationIndex から最後の destinationArray までの要素の数を超えています。 length is greater than the number of elements from destinationIndex to the end of destinationArray.

次のコード例は、いずれかからコピーする方法を示しています。Array型のObjectArray整数型。The following code example shows how to copy from one Array of type Object to another Array of type integer.

using namespace System;
void PrintValues( Array^ myArr );
void main()
{
   
   // Creates and initializes a new Array instance of type Int32.
   Array^ myIntArray = Array::CreateInstance( Type::GetType(  "System.Int32" ), 5 );
   for ( int i = myIntArray->GetLowerBound( 0 ); i <= myIntArray->GetUpperBound( 0 ); i++ )
      myIntArray->SetValue( i + 1, i );
   
   // Creates and initializes a new Array instance of type Object.
   Array^ myObjArray = Array::CreateInstance( Type::GetType(  "System.Object" ), 5 );
   for ( int i = myObjArray->GetLowerBound( 0 ); i <= myObjArray->GetUpperBound( 0 ); i++ )
      myObjArray->SetValue( i + 26, i );
   
   // Displays the initial values of both arrays.
   Console::WriteLine(  "Int32 array:" );
   PrintValues( myIntArray );
   Console::WriteLine(  "Object array:" );
   PrintValues( myObjArray );
   
   // Copies the first element from the Int32 array to the Object array.
   Array::Copy( myIntArray, myIntArray->GetLowerBound( 0 ), myObjArray, myObjArray->GetLowerBound( 0 ), 1 );
   
   // Copies the last two elements from the Object array to the Int32 array.
   Array::Copy( myObjArray, myObjArray->GetUpperBound( 0 ) - 1, myIntArray, myIntArray->GetUpperBound( 0 ) - 1, 2 );
   
   // Displays the values of the modified arrays.
   Console::WriteLine(  "Int32 array - Last two elements should now be the same as Object array:" );
   PrintValues( myIntArray );
   Console::WriteLine(  "Object array - First element should now be the same as Int32 array:" );
   PrintValues( myObjArray );
}

void PrintValues( Array^ myArr )
{
   System::Collections::IEnumerator^ myEnumerator = myArr->GetEnumerator();
   int i = 0;
   int cols = myArr->GetLength( myArr->Rank - 1 );
   while ( myEnumerator->MoveNext() )
   {
      if ( i < cols )
      {
         i++;
      }
      else
      {
         Console::WriteLine();
         i = 1;
      }

      Console::Write(  "\t{0}", myEnumerator->Current );
   }

   Console::WriteLine();
}

/*
 This code produces the following output.
 
 Int32 array:
     1    2    3    4    5
 Object array:
     26    27    28    29    30
 Int32 array - Last two elements should now be the same as Object array:
     1    2    3    29    30
 Object array - First element should now be the same as Int32 array:
     1    27    28    29    30
 */
using System;
public class SamplesArray  {

   public static void Main()  {

      // Creates and initializes a new Array of type Int32.
      Array myIntArray=Array.CreateInstance( typeof(System.Int32), 5 );
      for ( int i = myIntArray.GetLowerBound(0); i <= myIntArray.GetUpperBound(0); i++ )
         myIntArray.SetValue( i+1, i );

      // Creates and initializes a new Array of type Object.
      Array myObjArray = Array.CreateInstance( typeof(System.Object), 5 );
      for ( int i = myObjArray.GetLowerBound(0); i <= myObjArray.GetUpperBound(0); i++ )
         myObjArray.SetValue( i+26, i );

      // Displays the initial values of both arrays.
      Console.WriteLine( "Int32 array:" );
      PrintValues( myIntArray );
      Console.WriteLine( "Object array:" );
      PrintValues( myObjArray );

      // Copies the first element from the Int32 array to the Object array.
      Array.Copy( myIntArray, myIntArray.GetLowerBound(0), myObjArray, myObjArray.GetLowerBound(0), 1 );

      // Copies the last two elements from the Object array to the Int32 array.
      Array.Copy( myObjArray, myObjArray.GetUpperBound(0) - 1, myIntArray, myIntArray.GetUpperBound(0) - 1, 2 );

      // Displays the values of the modified arrays.
      Console.WriteLine( "Int32 array - Last two elements should now be the same as Object array:" );
      PrintValues( myIntArray );
      Console.WriteLine( "Object array - First element should now be the same as Int32 array:" );
      PrintValues( myObjArray );
   }


   public static void PrintValues( Array myArr )  {
      System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();
      int i = 0;
      int cols = myArr.GetLength( myArr.Rank - 1 );
      while ( myEnumerator.MoveNext() )  {
         if ( i < cols )  {
            i++;
         } else  {
            Console.WriteLine();
            i = 1;
         }
         Console.Write( "\t{0}", myEnumerator.Current );
      }
      Console.WriteLine();
   }
}
/*
This code produces the following output.

Int32 array:
    1    2    3    4    5
Object array:
    26    27    28    29    30
Int32 array - Last two elements should now be the same as Object array:
    1    2    3    29    30
Object array - First element should now be the same as Int32 array:
    1    27    28    29    30
*/
Imports System
Imports Microsoft.VisualBasic

Public Class SamplesArray    
    
    Public Shared Sub Main()
        
        ' Creates and initializes a new Array of type Int32.
        Dim myIntArray As Array = _
           Array.CreateInstance(GetType(System.Int32), 5)
        Dim i As Integer
        For i = myIntArray.GetLowerBound(0) To myIntArray.GetUpperBound(0)
            myIntArray.SetValue(i + 1, i)
        Next i 
        ' Creates and initializes a new Array of type Object.
        Dim myObjArray As Array = _
           Array.CreateInstance(GetType(System.Object), 5)
        For i = myObjArray.GetLowerBound(0) To myObjArray.GetUpperBound(0)
            myObjArray.SetValue(i + 26, i)
        Next i 
        ' Displays the initial values of both arrays.
        Console.WriteLine("Int32 array:")
        PrintValues(myIntArray)
        Console.WriteLine("Object array:")
        PrintValues(myObjArray)
        
        ' Copies the first element from the Int32 array to the Object array.
        Array.Copy(myIntArray, myIntArray.GetLowerBound(0), myObjArray, _
           myObjArray.GetLowerBound(0), 1)
        
        ' Copies the last two elements from the Object array to the Int32 array.
        Array.Copy(myObjArray, myObjArray.GetUpperBound(0) - 1, myIntArray, _
           myIntArray.GetUpperBound(0) - 1, 2)
        
        ' Displays the values of the modified arrays.
        Console.WriteLine("Int32 array - Last two elements should now be " _
           + "the same as Object array:")
        PrintValues(myIntArray)
        Console.WriteLine("Object array - First element should now be the " _
           + "same as Int32 array:")
        PrintValues(myObjArray)
    End Sub
    
    Public Shared Sub PrintValues(myArr As Array)
        Dim myEnumerator As System.Collections.IEnumerator = _
           myArr.GetEnumerator()
        Dim i As Integer = 0
        Dim cols As Integer = myArr.GetLength((myArr.Rank - 1))
        While myEnumerator.MoveNext()
            If i < cols Then
                i += 1
            Else
                Console.WriteLine()
                i = 1
            End If
            Console.Write(ControlChars.Tab + "{0}", myEnumerator.Current)
        End While
        Console.WriteLine()
    End Sub
End Class

' This code produces the following output.
' 
' Int32 array:
'     1    2    3    4    5
' Object array:
'     26    27    28    29    30
' Int32 array - Last two elements should now be the same as Object array:
'     1    2    3    29    30
' Object array - First element should now be the same as Int32 array:
'     1    27    28    29    30

注釈

sourceArraydestinationArrayパラメーターは、同じ次元数をいる必要があります。The sourceArray and destinationArray parameters must have the same number of dimensions. さらに、destinationArray次元されて既にする必要があり、十分な数の要素から開始する必要があります、destinationIndexコピーされたデータに対応する位置。In addition, destinationArray must already have been dimensioned and must have a sufficient number of elements starting from the destinationIndex position to accommodate the copied data.

多次元配列間でコピーする場合、配列のように動作長い 1 次元配列では、場所の行 (または列) が概念的にレイアウトされるエンド ツー エンドです。When copying between multidimensional arrays, the array behaves like a long one-dimensional array, where the rows (or columns) are conceptually laid end-to-end. たとえば、配列を持つ 3 つの行 (または列) 4 つの要素の配列の先頭から、各コピーの 6 つの要素の場合は最初の行 (または列) の 4 つすべての要素の最初の 2 つの要素、2 番目の行 (または列) がコピーします。For example, if an array has three rows (or columns) with four elements each, copying six elements from the beginning of the array would copy all four elements of the first row (or column) and the first two elements of the second row (or column). 3 番目の行 (または列) の 2 番目の要素からコピーを開始するsourceIndexさらに 2 つの 2 番目の行 (または列) の長さを加算結果の最初の行 (または列) の上限があります。To start copying from the second element of the third row (or column), sourceIndex must be the upper bound of the first row (or column) plus the length of the second row (or column) plus two.

場合sourceArraydestinationArray重なっているため、のこのメソッドの動作はまるでの元の値sourceArrayする前に一時的な場所に保持されたdestinationArrayが上書きされます。If sourceArray and destinationArray overlap, this method behaves as if the original values of sourceArray were preserved in a temporary location before destinationArray is overwritten.

[C++][C++]

このメソッドは、標準の C/C++ 関数memmoveではなく、memcpyします。This method is equivalent to the standard C/C++ function memmove, not memcpy.

配列には、参照型の配列または値型の配列を指定できます。The arrays can be reference-type arrays or value-type arrays. 型のダウン キャストを実行すると、必要に応じて。Type downcasting is performed, as required.

  • 参照型の配列から値型の配列にコピーするときは、各要素がボックス化解除し、コピーします。When copying from a reference-type array to a value-type array, each element is unboxed and then copied. 参照型の配列に値型の配列からコピーする場合は、各要素がボックス化され、コピーされます。When copying from a value-type array to a reference-type array, each element is boxed and then copied.

  • 参照型または値型の配列からコピーするとき、 Object 、配列、Objectがそれぞれの値または参照を保持するために作成され、コピーします。When copying from a reference-type or value-type array to an Object array, an Object is created to hold each value or reference and then copied. コピーするとき、Object可能であれば、参照型または値型の配列と、割り当て先の配列は、InvalidCastExceptionがスローされます。When copying from an Object array to a reference-type or value-type array and the assignment is not possible, an InvalidCastException is thrown.

  • 場合sourceArraydestinationArray両方の参照型の配列または型の両方の配列であるObject、シャロー コピーを実行します。If sourceArray and destinationArray are both reference-type arrays or are both arrays of type Object, a shallow copy is performed. 簡易コピーをArrayは、新しいArray元と同じ要素への参照を格納しているArrayします。A shallow copy of an Array is a new Array containing references to the same elements as the original Array. 要素自体または要素が参照はコピーされません。The elements themselves or anything referenced by the elements are not copied. 詳細がこれに対し、コピー、Array要素と要素が参照する直接的または間接的にすべてコピーします。In contrast, a deep copy of an Array copies the elements and everything directly or indirectly referenced by the elements.

ArrayTypeMismatchExceptionが、互換性のない型が配列である場合にスローされます。An ArrayTypeMismatchException is thrown if the arrays are of incompatible types. 型の互換性の定義は次のとおりです。Type compatibility is defined as follows:

  • 型がそれ自体との互換性です。A type is compatible with itself.

  • 値型と互換性がObjectとその値の型によって実装されたインターフェイス型を使用します。A value type is compatible with Object and with an interface type implemented by that value type. 値型では、直接そのインターフェイスを実装している場合にのみ、インターフェイスに接続されていると見なされます。A value type is considered connected to an interface only if it implements that interface directly. 接続されていない型に互換性がありません。Disconnected types are not compatible.

  • 2 つの組み込みの (定義済みの) 値の型は互換性のある拡大変換を元の型から変換先の型へのコピーがある場合です。Two intrinsic (predefined) value types are compatible if copying from the source type to the destination type is a widening conversion. 拡大変換では縮小変換情報が失われることができますが、については、失われます。A widening conversion never loses information, whereas a narrowing conversion can lose information. たとえばは拡大変換は、32 ビット符号付き整数を 64 ビット符号付き整数に変換して、縮小変換は、64 ビット符号付き整数に変換する 32 ビット符号付き整数。For example, converting a 32-bit signed integer to a 64-bit signed integer is a widening conversion, and converting a 64-bit signed integer to a 32-bit signed integer is a narrowing conversion. 変換の詳細については、次を参照してください。Convertします。For more information about conversions, see Convert.

  • 非組み込みの (ユーザー定義) の値型は、自分自身とのみ互換性。A nonintrinsic (user-defined) value type is compatible only with itself.

  • 列挙型への暗黙的な変換があるEnumとその基になる型。Enumerations have an implicit conversion to Enum and to their underlying type.

場合のすべての要素sourceArrayキャスト (たとえば、派生クラスを基底クラスまたはオブジェクトへのインターフェイスから) が必要ですし、1 つまたは複数の要素に対応する型にキャストできないdestinationArrayInvalidCastExceptionがスローされます。If every element in sourceArray requires a downcast (for example, from a base class to a derived class or from an interface to an object) and one or more elements cannot be cast to the corresponding type in destinationArray, an InvalidCastException is thrown.

このメソッドの状態のコピー中に例外をスローする場合destinationArrayが定義されていません。If this method throws an exception while copying, the state of destinationArray is undefined.

このメソッドは O (n) 操作、nlengthします。This method is an O(n) operation, where n is length.

こちらもご覧ください

Copy(Array, Array, Int64) Copy(Array, Array, Int64) Copy(Array, Array, Int64) Copy(Array, Array, Int64)

最初の要素を開始位置として Array から要素の範囲をコピーし、最初の要素を開始位置として他の Array にそれらの要素を貼り付けます。 Copies a range of elements from an Array starting at the first element and pastes them into another Array starting at the first element. 長さは 64 ビット整数値として指定します。 The length is specified as a 64-bit integer.

public:
 static void Copy(Array ^ sourceArray, Array ^ destinationArray, long length);
public static void Copy (Array sourceArray, Array destinationArray, long length);
static member Copy : Array * Array * int64 -> unit
Public Shared Sub Copy (sourceArray As Array, destinationArray As Array, length As Long)
パラメーター
sourceArray
Array Array Array Array

コピーするデータを格納している Array The Array that contains the data to copy.

destinationArray
Array Array Array Array

データを受け取る Array The Array that receives the data.

length
Int64 Int64 Int64 Int64

コピーする要素の数を表す 64 ビット整数。 A 64-bit integer that represents the number of elements to copy. この整数は 0 から MaxValue (この値を含む) の間である必要があります。 The integer must be between zero and MaxValue, inclusive.

例外

sourceArraynullです。 sourceArray is null. - または - -or- destinationArraynullです。 destinationArray is null.

sourceArraydestinationArray のランクが異なります。 sourceArray and destinationArray have different ranks.

sourceArraydestinationArray の型は互換性がありません。 sourceArray and destinationArray are of incompatible types.

sourceArray の少なくとも 1 つの要素が destinationArray の型にキャストできません。 At least one element in sourceArray cannot be cast to the type of destinationArray.

length が 0 未満であるか、または MaxValue を超えています。 length is less than 0 or greater than MaxValue.

lengthsourceArray にある要素の数を超えています。 length is greater than the number of elements in sourceArray. - または - -or- lengthdestinationArray にある要素の数を超えています。 length is greater than the number of elements in destinationArray.

注釈

sourceArraydestinationArrayパラメーターは、同じ次元数をいる必要があります。The sourceArray and destinationArray parameters must have the same number of dimensions. さらに、destinationArray次元されて既にする必要があり、十分な数の要素がコピーされたデータを格納する必要があります。In addition, destinationArray must already have been dimensioned and must have a sufficient number of elements to accommodate the copied data.

多次元配列間でコピーする場合、配列のように動作長い 1 次元配列では、場所の行 (または列) が概念的にレイアウトされるエンド ツー エンドです。When copying between multidimensional arrays, the array behaves like a long one-dimensional array, where the rows (or columns) are conceptually laid end to end. たとえば、配列を持つ 3 つの行 (または列) 4 つの要素の配列の先頭から、各コピーの 6 つの要素の場合は最初の行 (または列) の 4 つすべての要素の最初の 2 つの要素、2 番目の行 (または列) がコピーします。For example, if an array has three rows (or columns) with four elements each, copying six elements from the beginning of the array would copy all four elements of the first row (or column) and the first two elements of the second row (or column).

場合sourceArraydestinationArray重なっているため、のこのメソッドの動作はまるでの元の値sourceArrayする前に一時的な場所に保持されたdestinationArrayが上書きされます。If sourceArray and destinationArray overlap, this method behaves as if the original values of sourceArray were preserved in a temporary location before destinationArray is overwritten.

[C++][C++]

このメソッドは、標準の C/C++ 関数memmoveではなく、memcpyします。This method is equivalent to the standard C/C++ function memmove, not memcpy.

配列には、参照型の配列または値型の配列を指定できます。The arrays can be reference-type arrays or value-type arrays. 型のダウン キャストを実行すると、必要に応じて。Type downcasting is performed, as required.

  • 参照型の配列から値型の配列にコピーするときは、各要素がボックス化解除し、コピーします。When copying from a reference-type array to a value-type array, each element is unboxed and then copied. 参照型の配列に値型の配列からコピーする場合は、各要素がボックス化され、コピーされます。When copying from a value-type array to a reference-type array, each element is boxed and then copied.

  • 参照型または値型の配列からコピーするとき、 Object 、配列、Objectがそれぞれの値または参照を保持するために作成され、コピーします。When copying from a reference-type or value-type array to an Object array, an Object is created to hold each value or reference and then copied. コピーするとき、Object可能であれば、参照型または値型の配列と、割り当て先の配列は、InvalidCastExceptionがスローされます。When copying from an Object array to a reference-type or value-type array and the assignment is not possible, an InvalidCastException is thrown.

  • 場合sourceArraydestinationArray両方の参照型の配列または型の両方の配列であるObject、シャロー コピーを実行します。If sourceArray and destinationArray are both reference-type arrays or are both arrays of type Object, a shallow copy is performed. 簡易コピーをArrayは、新しいArray元と同じ要素への参照を格納しているArrayします。A shallow copy of an Array is a new Array containing references to the same elements as the original Array. 要素自体または要素が参照はコピーされません。The elements themselves or anything referenced by the elements are not copied. 詳細がこれに対し、コピー、Array要素と要素が参照する直接的または間接的にすべてコピーします。In contrast, a deep copy of an Array copies the elements and everything directly or indirectly referenced by the elements.

ArrayTypeMismatchExceptionが、互換性のない型が配列である場合にスローされます。An ArrayTypeMismatchException is thrown if the arrays are of incompatible types. 型の互換性の定義は次のとおりです。Type compatibility is defined as follows:

  • 型がそれ自体との互換性です。A type is compatible with itself.

  • 値型と互換性がObjectとその値の型によって実装されたインターフェイス型を使用します。A value type is compatible with Object and with an interface type implemented by that value type. 値型では、直接そのインターフェイスを実装している場合にのみ、インターフェイスに接続されていると見なされます。A value type is considered connected to an interface only if it implements that interface directly. 接続されていない型に互換性がありません。Disconnected types are not compatible.

  • 2 つの組み込みの (定義済みの) 値の型は互換性のある拡大変換を元の型から変換先の型へのコピーがある場合です。Two intrinsic (predefined) value types are compatible if copying from the source type to the destination type is a widening conversion. 拡大変換では縮小変換情報が失われることができますが、については、失われます。A widening conversion never loses information, whereas a narrowing conversion can lose information. たとえばは拡大変換は、32 ビット符号付き整数を 64 ビット符号付き整数に変換して、縮小変換は、64 ビット符号付き整数に変換する 32 ビット符号付き整数。For example, converting a 32-bit signed integer to a 64-bit signed integer is a widening conversion, and converting a 64-bit signed integer to a 32-bit signed integer is a narrowing conversion. 変換の詳細については、次を参照してください。Convertします。For more information about conversions, see Convert.

  • 非組み込みの (ユーザー定義) の値型は、自分自身とのみ互換性。A nonintrinsic (user-defined) value type is compatible only with itself.

  • 列挙型への暗黙的な変換があるEnumとその基になる型。Enumerations have an implicit conversion to Enum and to their underlying type.

場合のすべての要素sourceArrayキャスト (たとえば、派生クラスを基底クラスまたはオブジェクトへのインターフェイスから) が必要ですし、1 つまたは複数の要素に対応する型にキャストできないdestinationArrayInvalidCastExceptionがスローされます。If every element in sourceArray requires a downcast (for example, from a base class to a derived class or from an interface to an object) and one or more elements cannot be cast to the corresponding type in destinationArray, an InvalidCastException is thrown.

このメソッドの状態のコピー中に例外をスローする場合destinationArrayが定義されていません。If this method throws an exception while copying, the state of destinationArray is undefined.

このメソッドは O (n) 操作、nlengthします。This method is an O(n) operation, where n is length.

こちらもご覧ください

Copy(Array, Array, Int32) Copy(Array, Array, Int32) Copy(Array, Array, Int32) Copy(Array, Array, Int32)

最初の要素を開始位置として Array から要素の範囲をコピーし、最初の要素を開始位置として他の Array にそれらの要素を貼り付けます。 Copies a range of elements from an Array starting at the first element and pastes them into another Array starting at the first element. 長さは 32 ビット整数値として指定します。 The length is specified as a 32-bit integer.

public:
 static void Copy(Array ^ sourceArray, Array ^ destinationArray, int length);
public static void Copy (Array sourceArray, Array destinationArray, int length);
static member Copy : Array * Array * int -> unit
Public Shared Sub Copy (sourceArray As Array, destinationArray As Array, length As Integer)
パラメーター
sourceArray
Array Array Array Array

コピーするデータを格納している Array The Array that contains the data to copy.

destinationArray
Array Array Array Array

データを受け取る Array The Array that receives the data.

length
Int32 Int32 Int32 Int32

コピーする要素の数を表す 32 ビット整数。 A 32-bit integer that represents the number of elements to copy.

例外

sourceArraynullです。 sourceArray is null. - または - -or- destinationArraynullです。 destinationArray is null.

sourceArraydestinationArray のランクが異なります。 sourceArray and destinationArray have different ranks.

sourceArraydestinationArray の型は互換性がありません。 sourceArray and destinationArray are of incompatible types.

sourceArray の少なくとも 1 つの要素が destinationArray の型にキャストできません。 At least one element in sourceArray cannot be cast to the type of destinationArray.

lengthsourceArray にある要素の数を超えています。 length is greater than the number of elements in sourceArray. - または - -or- lengthdestinationArray にある要素の数を超えています。 length is greater than the number of elements in destinationArray.

注釈

sourceArraydestinationArrayパラメーターは、同じ次元数をいる必要があります。The sourceArray and destinationArray parameters must have the same number of dimensions. さらに、destinationArray次元されて既にする必要があり、十分な数の要素がコピーされたデータを格納する必要があります。In addition, destinationArray must already have been dimensioned and must have a sufficient number of elements to accommodate the copied data.

多次元配列間でコピーする場合、配列のように動作長い 1 次元配列では、場所の行 (または列) が概念的にレイアウトされるエンド ツー エンドです。When copying between multidimensional arrays, the array behaves like a long one-dimensional array, where the rows (or columns) are conceptually laid end to end. たとえば、配列を持つ 3 つの行 (または列) 4 つの要素の配列の先頭から、各コピーの 6 つの要素の場合は最初の行 (または列) の 4 つすべての要素の最初の 2 つの要素、2 番目の行 (または列) がコピーします。For example, if an array has three rows (or columns) with four elements each, copying six elements from the beginning of the array would copy all four elements of the first row (or column) and the first two elements of the second row (or column).

場合sourceArraydestinationArray重なっているため、のこのメソッドの動作はまるでの元の値sourceArrayする前に一時的な場所に保持されたdestinationArrayが上書きされます。If sourceArray and destinationArray overlap, this method behaves as if the original values of sourceArray were preserved in a temporary location before destinationArray is overwritten.

[C++][C++]

このメソッドは、標準の C/C++ 関数memmoveではなく、memcpyします。This method is equivalent to the standard C/C++ function memmove, not memcpy.

配列には、参照型の配列または値型の配列を指定できます。The arrays can be reference-type arrays or value-type arrays. 型のダウン キャストを実行すると、必要に応じて。Type downcasting is performed, as required.

  • 参照型の配列から値型の配列にコピーするときは、各要素がボックス化解除し、コピーします。When copying from a reference-type array to a value-type array, each element is unboxed and then copied. 参照型の配列に値型の配列からコピーする場合は、各要素がボックス化され、コピーされます。When copying from a value-type array to a reference-type array, each element is boxed and then copied.

  • 参照型または値型の配列からコピーするとき、 Object 、配列、Objectがそれぞれの値または参照を保持するために作成され、コピーします。When copying from a reference-type or value-type array to an Object array, an Object is created to hold each value or reference and then copied. コピーするとき、Object可能であれば、参照型または値型の配列と、割り当て先の配列は、InvalidCastExceptionがスローされます。When copying from an Object array to a reference-type or value-type array and the assignment is not possible, an InvalidCastException is thrown.

  • 場合sourceArraydestinationArray両方の参照型の配列または型の両方の配列であるObject、シャロー コピーを実行します。If sourceArray and destinationArray are both reference-type arrays or are both arrays of type Object, a shallow copy is performed. 簡易コピーをArrayは、新しいArray元と同じ要素への参照を格納しているArrayします。A shallow copy of an Array is a new Array containing references to the same elements as the original Array. 要素自体または要素が参照はコピーされません。The elements themselves or anything referenced by the elements are not copied. 詳細がこれに対し、コピー、Array要素と要素が参照する直接的または間接的にすべてコピーします。In contrast, a deep copy of an Array copies the elements and everything directly or indirectly referenced by the elements.

ArrayTypeMismatchExceptionが、互換性のない型が配列である場合にスローされます。An ArrayTypeMismatchException is thrown if the arrays are of incompatible types. 型の互換性の定義は次のとおりです。Type compatibility is defined as follows:

  • 型がそれ自体との互換性です。A type is compatible with itself.

  • 値型と互換性がObjectとその値の型によって実装されたインターフェイス型を使用します。A value type is compatible with Object and with an interface type implemented by that value type. 値型では、直接そのインターフェイスを実装している場合にのみ、インターフェイスに接続されていると見なされます。A value type is considered connected to an interface only if it implements that interface directly. 接続されていない型に互換性がありません。Disconnected types are not compatible.

  • 2 つの組み込みの (定義済みの) 値の型は互換性のある拡大変換を元の型から変換先の型へのコピーがある場合です。Two intrinsic (predefined) value types are compatible if copying from the source type to the destination type is a widening conversion. 拡大変換では縮小変換情報が失われることができますが、については、失われます。A widening conversion never loses information, whereas a narrowing conversion can lose information. たとえばは拡大変換は、32 ビット符号付き整数を 64 ビット符号付き整数に変換して、縮小変換は、64 ビット符号付き整数に変換する 32 ビット符号付き整数。For example, converting a 32-bit signed integer to a 64-bit signed integer is a widening conversion, and converting a 64-bit signed integer to a 32-bit signed integer is a narrowing conversion. 変換の詳細については、次を参照してください。Convertします。For more information about conversions, see Convert.

  • 非組み込みの (ユーザー定義) の値型は、自分自身とのみ互換性。A nonintrinsic (user-defined) value type is compatible only with itself.

  • 列挙型への暗黙的な変換があるEnumとその基になる型。Enumerations have an implicit conversion to Enum and to their underlying type.

場合のすべての要素sourceArrayキャスト (たとえば、派生クラスを基底クラスまたはオブジェクトへのインターフェイスから) が必要ですし、1 つまたは複数の要素に対応する型にキャストできないdestinationArrayInvalidCastExceptionがスローされます。If every element in sourceArray requires a downcast (for example, from a base class to a derived class or from an interface to an object) and one or more elements cannot be cast to the corresponding type in destinationArray, an InvalidCastException is thrown.

このメソッドの状態のコピー中に例外をスローする場合destinationArrayが定義されていません。If this method throws an exception while copying, the state of destinationArray is undefined.

このメソッドは O (n) 操作、nlengthします。This method is an O(n) operation, where n is length.

こちらもご覧ください

適用対象