次の方法で共有


ArrayList.CopyTo メソッド (Int32, Array, Int32, Int32)

要素の範囲を ArrayList から互換性のある 1 次元の Array にコピーします。コピー操作は、コピー先の配列の指定したインデックスから始まります。

Overloads Public Overridable Sub CopyTo( _
   ByVal index As Integer, _   ByVal array As Array, _   ByVal arrayIndex As Integer, _   ByVal count As Integer _)
[C#]
public virtual void CopyTo(intindex,Arrayarray,intarrayIndex,intcount);
[C++]
public: virtual void CopyTo(intindex,Array* array,intarrayIndex,intcount);
[JScript]
public function CopyTo(
   index : int,array : Array,arrayIndex : int,count : int);

パラメータ

  • index
    コピーを開始するコピー元の ArrayList 内の、0 から始まるインデックス番号。
  • array
    ArrayList から要素がコピーされる 1 次元の ArrayArray には、0 から始まるインデックス番号が必要です。
  • arrayIndex
    コピーの開始位置となる、array の 0 から始まるインデックス番号。
  • count
    コピーする要素の数。

例外

例外の種類 条件
ArgumentNullException array が null 参照 (Visual Basic では Nothing) です。
ArgumentOutOfRangeException index が 0 未満です。

または

arrayIndex が 0 未満です。

または

count が 0 未満です。

ArgumentException array が多次元です。

または

index が、コピー元の ArrayListCount 以上です。

または

arrayIndex が array の長さ以上です。

または

コピー元の ArrayList の要素数が、 arrayIndex からコピー先の array の末尾までに格納できる数を超えています。

InvalidCastException コピー元の ArrayList の型が、コピー先の array の型に自動的にキャストできません。

解説

互換性のある型の配列を指定する必要があります。

使用例

ArrayList を 1 次元の System.Array にコピーする方法の例を次に示します。

 
Imports System
Imports System.Collections
Imports Microsoft.VisualBasic

Public Class SamplesArrayList    
    
    Public Shared Sub Main()
        
        ' Creates and initializes the source ArrayList.
        Dim mySourceList As New ArrayList()
        mySourceList.Add("three")
        mySourceList.Add("napping")
        mySourceList.Add("cats")
        mySourceList.Add("in")
        mySourceList.Add("the")
        mySourceList.Add("barn")
        
        ' Creates and initializes the one-dimensional target Array.
        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("jumped", 4)
        myTargetArray.SetValue("over", 5)
        myTargetArray.SetValue("the", 6)
        myTargetArray.SetValue("lazy", 7)
        myTargetArray.SetValue("dog", 8)
        
        ' Displays the values of the target Array.
        Console.WriteLine("The target Array contains the following " _
           + "(before and after copying):")
        PrintValues(myTargetArray, " "c)
        
        ' Copies the second element from the source ArrayList to the target
        ' ArrayList, starting at index 7.
        mySourceList.CopyTo(1, myTargetArray, 7, 1)
        
        ' Displays the values of the target Array.
        PrintValues(myTargetArray, " "c)
        
        ' Copies the entire source ArrayList to the target ArrayList, starting
        ' at index 6.
        mySourceList.CopyTo(myTargetArray, 6)
        
        ' Displays the values of the target Array.
        PrintValues(myTargetArray, " "c)
        
        ' Copies the entire source ArrayList to the target ArrayList, starting
        ' at index 0.
        mySourceList.CopyTo(myTargetArray)
        
        ' Displays the values of the target Array.
        PrintValues(myTargetArray, " "c)
    End Sub 'Main
    
    
    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 jumped over the lazy dog      
'  The quick brown fox jumped over the napping dog      
'  The quick brown fox jumped over three napping cats in the barn   
'  three napping cats in the barn three napping cats in the barn 

[C#] 
using System;
using System.Collections;
public class SamplesArrayList  {

   public static void Main()  {

      // Creates and initializes the source ArrayList.
      ArrayList mySourceList = new ArrayList();
      mySourceList.Add( "three" );
      mySourceList.Add( "napping" );
      mySourceList.Add( "cats" );
      mySourceList.Add( "in" );
      mySourceList.Add( "the" );
      mySourceList.Add( "barn" );

      // Creates and initializes the one-dimensional target Array.
      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( "jumped", 4 );
      myTargetArray.SetValue( "over", 5 );
      myTargetArray.SetValue( "the", 6 );
      myTargetArray.SetValue( "lazy", 7 );
      myTargetArray.SetValue( "dog", 8 );

      // Displays the values of the target Array.
      Console.WriteLine( "The target Array contains the following (before and after copying):" );
      PrintValues( myTargetArray, ' ' );

      // Copies the second element from the source ArrayList to the target ArrayList, starting at index 7.
      mySourceList.CopyTo( 1, myTargetArray, 7, 1 );

      // Displays the values of the target Array.
      PrintValues( myTargetArray, ' ' );

      // Copies the entire source ArrayList to the target ArrayList, starting at index 6.
      mySourceList.CopyTo( myTargetArray, 6 );

      // Displays the values of the target Array.
      PrintValues( myTargetArray, ' ' );

      // Copies the entire source ArrayList to the target ArrayList, starting at index 0.
      mySourceList.CopyTo( myTargetArray );

      // Displays the values of the target 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 jumped over the lazy dog      
 The quick brown fox jumped over the napping dog      
 The quick brown fox jumped over three napping cats in the barn   
 three napping cats in the barn three napping cats in the barn
*/ 

[C++] 
#using <mscorlib.dll>
using namespace System;
using namespace System::Collections;

void PrintValues( Array* myArr, String* mySeparator );
 
void main()  {
 
       // Creates and initializes the source ArrayList.
       ArrayList* mySourceList = new ArrayList();
       mySourceList->Add( S"three" );
       mySourceList->Add( S"napping" );
       mySourceList->Add( S"cats" );
       mySourceList->Add( S"in" );
       mySourceList->Add( S"the" );
       mySourceList->Add( S"barn" );
 
       // Creates and initializes the one-dimensional target Array.
       Array* myTargetArray = Array::CreateInstance( __typeof(String), 15 );
       myTargetArray->SetValue( S"The", 0 );
       myTargetArray->SetValue( S"quick", 1 );
       myTargetArray->SetValue( S"brown", 2 );
       myTargetArray->SetValue( S"fox", 3 );
       myTargetArray->SetValue( S"jumped", 4 );
       myTargetArray->SetValue( S"over", 5 );
       myTargetArray->SetValue( S"the", 6 );
       myTargetArray->SetValue( S"lazy", 7 );
       myTargetArray->SetValue( S"dog", 8 );

 
       String* cSeparator = " ";

       // Displays the values of the target Array.
       Console::WriteLine( "The target Array instance contains the following (before and after copying):" );
       PrintValues( myTargetArray, cSeparator );
 
       // Copies the second element from the source ArrayList to the target ArrayList, starting at index 7.
       mySourceList->CopyTo( 1, myTargetArray, 7, 1 );
 
       // Displays the values of the target Array.
       PrintValues( myTargetArray, cSeparator );
 
       // Copies the entire source ArrayList to the target ArrayList, starting at index 6.
       mySourceList->CopyTo( myTargetArray, 6 );
 
       // Displays the values of the target Array.
       PrintValues( myTargetArray, cSeparator );
 
       // Copies the entire source ArrayList to the target ArrayList, starting at index 0.
       mySourceList->CopyTo( myTargetArray );
 
       // Displays the values of the target Array.
       PrintValues( myTargetArray, cSeparator );
    }
 
void PrintValues( Array* myArr, String* 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 instance contains the following (before and after copying):
  The quick brown fox jumped over the lazy dog      
  The quick brown fox jumped over the napping dog      
  The quick brown fox jumped over three napping cats in the barn   
  three napping cats in the barn three napping cats in the barn
 */ 

[JScript] 
import System;
import System.Collections;


// Creates and initializes the source ArrayList.
var mySourceList : ArrayList  = new ArrayList();
mySourceList.Add( "three" );
mySourceList.Add( "napping" );
mySourceList.Add( "cats" );
mySourceList.Add( "in" );
mySourceList.Add( "the" );
mySourceList.Add( "barn" );

// Creates and initializes the one-dimensional target Array.
var myTargetArray : System.Array = System.Array.CreateInstance( System.String, 15 );
myTargetArray.SetValue( "The", 0 );
myTargetArray.SetValue( "quick", 1 );
myTargetArray.SetValue( "brown", 2 );
myTargetArray.SetValue( "fox", 3 );
myTargetArray.SetValue( "jumped", 4 );
myTargetArray.SetValue( "over", 5 );
myTargetArray.SetValue( "the", 6 );
myTargetArray.SetValue( "lazy", 7 );
myTargetArray.SetValue( "dog", 8 );

// Displays the values of the target Array.
Console.WriteLine( "The target Array contains the following (before and after copying):" );
PrintValues( myTargetArray, ' ' );

// Copies the second element from the source ArrayList to the target ArrayList, starting at index 7.
mySourceList.CopyTo( 1, myTargetArray, 7, 1 );

// Displays the values of the target Array.
PrintValues( myTargetArray, ' ' );

// Copies the entire source ArrayList to the target ArrayList, starting at index 6.
mySourceList.CopyTo( myTargetArray, 6 );

// Displays the values of the target Array.
PrintValues( myTargetArray, ' ' );

// Copies the entire source ArrayList to the target ArrayList, starting at index 0.
mySourceList.CopyTo( myTargetArray );

// Displays the values of the target Array.
PrintValues( myTargetArray, ' ' );

 
function PrintValues( myArr : System.Array , mySeparator : char  )  {
   var myEnumerator : System.Collections.IEnumerator = myArr.GetEnumerator();
   var i : int= 0;
   var cols : int = 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 jumped over the lazy dog      
  The quick brown fox jumped over the napping dog      
  The quick brown fox jumped over three napping cats in the barn   
  three napping cats in the barn three napping cats in the barn
 */ 

必要条件

プラットフォーム: 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 名前空間 | ArrayList.CopyTo オーバーロードの一覧