Array.CopyTo メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在の 1 次元配列のすべての要素を、指定した 1 次元配列にコピーします。
オーバーロード
| CopyTo(Array, Int32) |
現在の 1 次元配列のすべての要素を、指定したコピー先配列インデックスで開始する指定の 1 次元配列にコピーします。 インデックスは 32 ビット整数値として指定します。 |
| CopyTo(Array, Int64) |
現在の 1 次元配列のすべての要素を、指定したコピー先配列インデックスで開始する指定の 1 次元配列にコピーします。 このインデックスは 64 ビット整数値として指定されます。 |
例
次のコード例は、別Arrayのコード例にコピーする方法をArray示しています。
using namespace System;
void main()
{
// Creates and initializes two new Array instances.
Array^ mySourceArray = Array::CreateInstance(String::typeid, 6);
mySourceArray->SetValue("three", 0);
mySourceArray->SetValue("napping", 1);
mySourceArray->SetValue("cats", 2);
mySourceArray->SetValue("in", 3);
mySourceArray->SetValue("the", 4);
mySourceArray->SetValue("barn", 5);
Array^ myTargetArray = Array::CreateInstance(String::typeid, 15);
myTargetArray->SetValue("The", 0);
myTargetArray->SetValue("quick", 1);
myTargetArray->SetValue("brown", 2);
myTargetArray->SetValue("fox", 3);
myTargetArray->SetValue("jumps", 4);
myTargetArray->SetValue("over", 5);
myTargetArray->SetValue("the", 6);
myTargetArray->SetValue("lazy", 7);
myTargetArray->SetValue("dog", 8);
// Displays the values of the Array.
Console::WriteLine( "The target Array instance contains the following (before and after copying):");
PrintValues(myTargetArray);
// Copies the source Array to the target Array, starting at index 6.
mySourceArray->CopyTo(myTargetArray, 6);
// Displays the values of the Array.
PrintValues(myTargetArray);
}
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( " {0}", myEnumerator->Current);
}
Console::WriteLine();
}
/*
This code produces the following output.
The target Array instance contains the following (before and after copying):
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over three napping cats in the barn
*/
let printValues arr sep =
for i in arr do
printf $"{sep}{i}"
printfn ""
// Creates and initializes two new Arrays.
let mySourceArray =
[| "three"
"napping"
"cats"
"in"
"the"
"barn" |]
let myTargetArray = Array.zeroCreate 15
myTargetArray[0..8] <-
[| "The"
"quick"
"brown"
"fox"
"jumps"
"over"
"the"
"lazy"
"dog" |]
// Displays the values of the Array.
printfn "The target Array contains the following (before and after copying):"
printValues myTargetArray ' '
// Copies the source Array to the target Array, starting at index 6.
mySourceArray.CopyTo(myTargetArray, 6)
// Displays the values of the Array.
printValues myTargetArray ' '
// This code produces the following output.
// The target Array contains the following (before and after copying):
// The quick brown fox jumps over the lazy dog
// The quick brown fox jumps over three napping cats in the barn
using System;
public class SamplesArray
{
public static void Main()
{
// Creates and initializes two new Arrays.
Array mySourceArray=Array.CreateInstance(typeof(string), 6);
mySourceArray.SetValue("three", 0);
mySourceArray.SetValue("napping", 1);
mySourceArray.SetValue("cats", 2);
mySourceArray.SetValue("in", 3);
mySourceArray.SetValue("the", 4);
mySourceArray.SetValue("barn", 5);
Array myTargetArray=Array.CreateInstance(typeof(string), 15);
myTargetArray.SetValue("The", 0);
myTargetArray.SetValue("quick", 1);
myTargetArray.SetValue("brown", 2);
myTargetArray.SetValue("fox", 3);
myTargetArray.SetValue("jumps", 4);
myTargetArray.SetValue("over", 5);
myTargetArray.SetValue("the", 6);
myTargetArray.SetValue("lazy", 7);
myTargetArray.SetValue("dog", 8);
// Displays the values of the Array.
Console.WriteLine("The target Array contains the following (before and after copying):");
PrintValues(myTargetArray, ' ');
// Copies the source Array to the target Array, starting at index 6.
mySourceArray.CopyTo(myTargetArray, 6);
// Displays the values of the Array.
PrintValues(myTargetArray, ' ');
}
public static void PrintValues(Array myArr, char mySeparator)
{
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("{0}{1}", mySeparator, myEnumerator.Current);
}
Console.WriteLine();
}
}
/*
This code produces the following output.
The target Array contains the following (before and after copying):
The quick brown fox jumps over the lazy dog
The quick brown fox jumps over three napping cats in the barn
*/
Public Class SamplesArray
Public Shared Sub Main()
' Creates and initializes two new Arrays.
Dim mySourceArray As Array = Array.CreateInstance(GetType(String), 6)
mySourceArray.SetValue("three", 0)
mySourceArray.SetValue("napping", 1)
mySourceArray.SetValue("cats", 2)
mySourceArray.SetValue("in", 3)
mySourceArray.SetValue("the", 4)
mySourceArray.SetValue("barn", 5)
Dim myTargetArray As Array = Array.CreateInstance(GetType(String), 15)
myTargetArray.SetValue("The", 0)
myTargetArray.SetValue("quick", 1)
myTargetArray.SetValue("brown", 2)
myTargetArray.SetValue("fox", 3)
myTargetArray.SetValue("jumps", 4)
myTargetArray.SetValue("over", 5)
myTargetArray.SetValue("the", 6)
myTargetArray.SetValue("lazy", 7)
myTargetArray.SetValue("dog", 8)
' Displays the values of the Array.
Console.WriteLine("The target Array contains the following" _
& "(before and after copying):")
PrintValues(myTargetArray, " "c)
' Copies the source Array to the target Array, starting at index 6.
mySourceArray.CopyTo(myTargetArray, 6)
' Displays the values of the Array.
PrintValues(myTargetArray, " "c)
End Sub
Public Shared Sub PrintValues(myArr As Array, mySeparator As Char)
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("{0}{1}", mySeparator, myEnumerator.Current)
End While
Console.WriteLine()
End Sub
End Class
' This code produces the following output.
'
' The target Array contains the following (before and after copying):
' The quick brown fox jumps over the lazy dog
' The quick brown fox jumps over three napping cats in the barn
次のコード例は、0 以外の Array 下限を持つ別 Array のコード例にコピーする方法を示しています。 ターゲット内の既存の要素を上書きする空の要素を含め、ソース Array 全体がコピーされることに注意してください Array。
using namespace System;
void main()
{
// Creates and initializes the source Array.
Array^ myArrayZero = Array::CreateInstance(String::typeid, 3);
myArrayZero->SetValue("zero", 0);
myArrayZero->SetValue("one", 1);
// Displays the source Array.
Console::WriteLine("The array with lowbound=0 contains:");
PrintIndexAndValues(myArrayZero);
// Creates and initializes the target Array.
array<int>^myArrLen = {4};
array<int>^myArrLow = {2};
Array^ myArrayTwo = Array::CreateInstance(String::typeid, myArrLen, myArrLow);
myArrayTwo->SetValue("two", 2);
myArrayTwo->SetValue("three", 3);
myArrayTwo->SetValue("four", 4);
myArrayTwo->SetValue("five", 5);
// Displays the target Array.
Console::WriteLine("The array with lowbound=2 contains:");
PrintIndexAndValues(myArrayTwo);
// Copy from the array with lowbound=0 to the array with lowbound=2.
myArrayZero->CopyTo(myArrayTwo, 3);
// Displays the modified target Array.
Console::WriteLine("\nAfter copying at relative index 1:");
PrintIndexAndValues(myArrayTwo);
}
void PrintIndexAndValues(Array^ myArray)
{
for (int i = myArray->GetLowerBound(0); i <= myArray->GetUpperBound(0); i++)
Console::WriteLine("\t[{0}]:\t{1}", i, myArray->GetValue(i));
}
/*
This code produces the following output.
The array with lowbound=0 contains:
[0]: zero
[1]: one
[2]:
The array with lowbound=2 contains:
[2]: two
[3]: three
[4]: four
[5]: five
After copying at relative index 1:
[2]: two
[3]: zero
[4]: one
[5]:
*/
open System
let printIndexAndValues (myArray: Array) =
for i = myArray.GetLowerBound 0 to myArray.GetUpperBound 0 do
printfn $"\t[{i}]:\t{myArray.GetValue i}"
// Creates and initializes the source Array.
let myArrayZero = Array.zeroCreate 3
myArrayZero[0] <- "zero"
myArrayZero[1] <- "one"
// Displays the source Array.
printfn "The array with lower bound=0 contains:"
printIndexAndValues myArrayZero
// Creates and initializes the target Array.
let myArrLen = [| 4 |]
let myArrLow = [| 2 |]
let myArrayTwo = Array.CreateInstance(typeof<string>, myArrLen, myArrLow)
myArrayTwo.SetValue("two", 2)
myArrayTwo.SetValue("three", 3)
myArrayTwo.SetValue("four", 4)
myArrayTwo.SetValue("five", 5)
// Displays the target Array.
printfn "The array with lower bound=2 contains:"
printIndexAndValues myArrayTwo
// Copies from the array with lower bound=0 to the array with lower bound=2.
myArrayZero.CopyTo(myArrayTwo, 3)
// Displays the modified target Array.
printfn "\nAfter copying to the target array from index 3:"
printIndexAndValues myArrayTwo
// This code produces the following output.
// The array with lower bound=0 contains:
// [0]: zero
// [1]: one
// [2]:
// The array with lower bound=2 contains:
// [2]: two
// [3]: three
// [4]: four
// [5]: five
//
// After copying to the target array from index 3:
// [2]: two
// [3]: zero
// [4]: one
// [5]:
using System;
public class SamplesArray2
{
public static void Main()
{
// Creates and initializes the source Array.
Array myArrayZero=Array.CreateInstance(typeof(string), 3);
myArrayZero.SetValue("zero", 0);
myArrayZero.SetValue("one", 1);
// Displays the source Array.
Console.WriteLine("The array with lower bound=0 contains:");
PrintIndexAndValues(myArrayZero);
// Creates and initializes the target Array.
int[] myArrLen = { 4 };
int[] myArrLow = { 2 };
Array myArrayTwo=Array.CreateInstance(typeof(string), myArrLen, myArrLow);
myArrayTwo.SetValue("two", 2);
myArrayTwo.SetValue("three", 3);
myArrayTwo.SetValue("four", 4);
myArrayTwo.SetValue("five", 5);
// Displays the target Array.
Console.WriteLine("The array with lower bound=2 contains:");
PrintIndexAndValues(myArrayTwo);
// Copies from the array with lower bound=0 to the array with lower bound=2.
myArrayZero.CopyTo(myArrayTwo, 3);
// Displays the modified target Array.
Console.WriteLine("\nAfter copying to the target array from index 3:");
PrintIndexAndValues(myArrayTwo);
}
public static void PrintIndexAndValues(Array myArray)
{
for (int i = myArray.GetLowerBound(0); i <= myArray.GetUpperBound(0); i++)
Console.WriteLine("\t[{0}]:\t{1}", i, myArray.GetValue(i));
}
}
/*
This code produces the following output.
The array with lower bound=0 contains:
[0]: zero
[1]: one
[2]:
The array with lower bound=2 contains:
[2]: two
[3]: three
[4]: four
[5]: five
After copying to the target array from index 3:
[2]: two
[3]: zero
[4]: one
[5]:
*/
Public Class SamplesArray2
Public Shared Sub Main()
' Creates and initializes the source Array.
Dim myArrayZero As Array = Array.CreateInstance(GetType(String), 3)
myArrayZero.SetValue("zero", 0)
myArrayZero.SetValue("one", 1)
' Displays the source Array.
Console.WriteLine("The array with lower bound=0 contains:")
PrintIndexAndValues(myArrayZero)
' Creates and initializes the target Array.
Dim myArrLen As Integer() = {4}
Dim myArrLow As Integer() = {2}
Dim myArrayTwo As Array = Array.CreateInstance(GetType(String), _
myArrLen, myArrLow)
myArrayTwo.SetValue("two", 2)
myArrayTwo.SetValue("three", 3)
myArrayTwo.SetValue("four", 4)
myArrayTwo.SetValue("five", 5)
' Displays the target Array.
Console.WriteLine("The array with lower bound=2 contains:")
PrintIndexAndValues(myArrayTwo)
' Copies from the array with lower bound=0 to the array with lower bound=2.
myArrayZero.CopyTo(myArrayTwo, 3)
' Displays the modified target Array.
Console.WriteLine(ControlChars.Cr + "After copying to the target array from " _
+ "index 3:")
PrintIndexAndValues(myArrayTwo)
End Sub
Public Shared Sub PrintIndexAndValues(myArray As Array)
Dim i As Integer
For i = myArray.GetLowerBound(0) To myArray.GetUpperBound(0)
Console.WriteLine(ControlChars.Tab + "[{0}]:" + ControlChars.Tab _
+ "{1}", i, myArray.GetValue(i))
Next i
End Sub
End Class
' This code produces the following output.
'
' The array with lower bound=0 contains:
' [0]: zero
' [1]: one
' [2]:
' The array with lower bound=2 contains:
' [2]: two
' [3]: three
' [4]: four
' [5]: five
'
' After copying to the target array from index 3:
' [2]: two
' [3]: zero
' [4]: one
' [5]:
CopyTo(Array, Int32)
現在の 1 次元配列のすべての要素を、指定したコピー先配列インデックスで開始する指定の 1 次元配列にコピーします。 インデックスは 32 ビット整数値として指定します。
public:
virtual void CopyTo(Array ^ array, int index);
public void CopyTo (Array array, int index);
public virtual void CopyTo (Array array, int index);
abstract member CopyTo : Array * int -> unit
override this.CopyTo : Array * int -> unit
Public Sub CopyTo (array As Array, index As Integer)
Public Overridable Sub CopyTo (array As Array, index As Integer)
パラメーター
- array
- Array
現在の配列からコピーされる要素のコピー先である 1 次元配列。
- index
- Int32
コピーを開始する array のインデックスを表す 32 ビット整数。
実装
例外
array が nullです。
index が array の下限を下回っています。
コピー元の Array の型をコピー先の array の型に自動的にキャストすることはできません。
ソース配列が多次元配列です。
コピー元 Array の中の少なくとも 1 つの要素を、コピー先 array の型にキャストすることができません。
注釈
このメソッドは、現在の配列インスタンスのすべての要素を、インデックス位置からコピー先の array 配列にコピーします index。 コピー先の array 配列は既に次元化されており、コピーされた要素に対応するのに十分な数の要素が必要です。 そうしないと、例外がスローされます。
このメソッドは、インターフェイスを System.Collections.ICollection サポートしています。 実装 System.Collections.ICollection が明示的に必要でない場合は、余分な間接参照を避けるために使用 Copy します。
このメソッドがコピー中に例外をスローした場合、状態 array は未定義です。
このメソッドは O(n) 操作です。nは Length です。 簡易コピーのみを実行します。
こちらもご覧ください
適用対象
CopyTo(Array, Int64)
現在の 1 次元配列のすべての要素を、指定したコピー先配列インデックスで開始する指定の 1 次元配列にコピーします。 このインデックスは 64 ビット整数値として指定されます。
public:
void CopyTo(Array ^ array, long index);
public:
virtual void CopyTo(Array ^ array, long index);
public void CopyTo (Array array, long index);
[System.Runtime.InteropServices.ComVisible(false)]
public virtual void CopyTo (Array array, long index);
[System.Runtime.InteropServices.ComVisible(false)]
public void CopyTo (Array array, long index);
member this.CopyTo : Array * int64 -> unit
[<System.Runtime.InteropServices.ComVisible(false)>]
abstract member CopyTo : Array * int64 -> unit
override this.CopyTo : Array * int64 -> unit
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.CopyTo : Array * int64 -> unit
Public Sub CopyTo (array As Array, index As Long)
Public Overridable Sub CopyTo (array As Array, index As Long)
パラメーター
- array
- Array
現在の配列からコピーされる要素のコピー先である 1 次元配列。
- index
- Int64
コピーを開始する array のインデックスを表す 64 ビット整数。
- 属性
例外
array が nullです。
index は array の有効なインデックスの範囲外です。
コピー元の Array の型をコピー先の array の型に自動的にキャストすることはできません。
コピー元の Array が多次元です。
コピー元 Array の中の少なくとも 1 つの要素を、コピー先 array の型にキャストすることができません。
注釈
このメソッドは、現在の配列インスタンスのすべての要素を、インデックス位置からコピー先の array 配列にコピーします index。 コピー先の array 配列は既に次元化されており、コピーされた要素に対応するのに十分な数の要素が必要です。 そうしないと、例外がスローされます。
このメソッドは、インターフェイスを System.Collections.ICollection サポートしています。 実装 System.Collections.ICollection が明示的に必要でない場合は、余分な間接参照を避けるために使用 Copy します。
このメソッドがコピー中に例外をスローした場合、状態 array は未定義です。
このメソッドは O(n) 操作です。nは Length です。 簡易コピーのみを実行します。