Array.ConstrainedCopy(Array, Int32, Array, Int32, Int32) メソッド

定義

指定したコピー元インデックスを開始位置として Array から要素の範囲をコピーし、指定したコピー先インデックスを開始位置として他の Array にそれらの要素を貼り付けます。 コピーが完全に成功しない限り、変更は一切適用されません。

public:
 static void ConstrainedCopy(Array ^ sourceArray, int sourceIndex, Array ^ destinationArray, int destinationIndex, int length);
public static void ConstrainedCopy (Array sourceArray, int sourceIndex, Array destinationArray, int destinationIndex, int length);
static member ConstrainedCopy : Array * int * Array * int * int -> unit
Public Shared Sub ConstrainedCopy (sourceArray As Array, sourceIndex As Integer, destinationArray As Array, destinationIndex As Integer, length As Integer)

パラメーター

sourceArray
Array

コピーするデータを格納している Array

sourceIndex
Int32

コピー操作の開始位置となる sourceArray 内のインデックスを表す 32 ビット整数。

destinationArray
Array

データを受け取る Array

destinationIndex
Int32

格納を開始する destinationArray のインデックスを表す 32 ビット整数。

length
Int32

コピーする要素の数を表す 32 ビット整数。

例外

sourceArraynullです。

または

destinationArraynullです。

sourceArraydestinationArray のランクが異なります。

sourceArray はどちらも同じでもなく、destinationArray 型から派生したものでもありません。

sourceArray の少なくとも 1 つの要素が destinationArray の型にキャストできません。

sourceIndexsourceArray の最初の次元の下限を下回っています。

  • または -

destinationIndexdestinationArray の最初の次元の下限を下回っています。

  • または -

length が 0 未満です。

lengthsourceIndex から最後の sourceArray までの要素の数を超えています。

  • または -

lengthdestinationIndex から最後の destinationArray までの要素の数を超えています。

注釈

パラメーター sourceArray と パラメーター destinationArray には、同じ数のディメンションが必要です。 型 sourceArray は 型と同じか、型から派生している必要 destinationArray があります。それ以外の場合は ArrayTypeMismatchException がスローされます。 とは CopyConstrainedCopy なり、 は、操作を実行する前に配列型の互換性を検証します。

多次元配列間でコピーする場合、配列は長い 1 次元配列のように動作します。この配列では、行 (または列) が概念的にエンドツーエンドで配置されます。 たとえば、配列にそれぞれ 4 つの要素を持つ 3 つの行 (または列) がある場合、配列の先頭から 6 つの要素をコピーすると、最初の行 (または列) の 4 つの要素と 2 番目の行 (または列) の最初の 2 つの要素すべてがコピーされます。 3 番目の行 (または列) の 2 番目の要素からコピーを開始するには、最初の行 (または列) の上限と、2 番目の行 (または列) の長さに 2 を加えた値を指定する必要があります。 sourceIndex

と が重複する場合、このメソッドは、 の元の値が上書きされる前に一時的な場所に保持された場合 sourceArray destinationArray sourceArray destinationArray と同様に動作します。

[C++]

このメソッドは、ではなく、標準の C/c + + 関数に相当し memmove memcpy ます。

配列には、参照型の配列または値型の配列を指定できます。 sourceArrayとの destinationArray 両方が参照型の配列であるか、両方とも型の配列である場合 Object 、簡易コピーが実行されます。 の簡易コピーは、 Array Array 元のと同じ要素への参照を含む新しいです Array 。 要素自体、または要素によって参照されるものはコピーされません。 これに対し、の詳細コピーでは、要素と、要素 Array によって直接的または間接的に参照されるすべての要素がコピーされます。

コピー中にこのメソッドが例外をスローした場合、は destinationArray 変更されません。したがって、は、制約され ConstrainedCopy た実行領域 () 内で使用できます Cer

このメソッドは O(n) 操作です。nlength です。

適用対象

こちらもご覧ください