BitArray.CopyTo(Array, Int32) 메서드

정의

대상 배열의 지정된 인덱스에서 시작하여 전체 BitArray을 호환되는 1차원 Array에 복사합니다.Copies the entire BitArray to a compatible one-dimensional Array, starting at the specified index of the target array.

public:
 virtual void CopyTo(Array ^ array, int index);
public void CopyTo (Array array, int index);
abstract member CopyTo : Array * int -> unit
override this.CopyTo : Array * int -> unit

매개 변수

array
Array

Array에서 복사한 요소의 대상인 일차원 BitArray입니다.The one-dimensional Array that is the destination of the elements copied from BitArray. Array에는 0부터 시작하는 인덱스가 있어야 합니다.The Array must have zero-based indexing.

index
Int32

복사가 시작되는 array의 인덱스(0부터 시작)입니다.The zero-based index in array at which copying begins.

구현

예외

arraynull인 경우array is null.

index가 0보다 작은 경우index is less than zero.

array가 다차원 배열인 경우array is multidimensional.

-또는--or- 소스 BitArray의 요소 수가 대상 indexarray부터 끝까지 사용 가능한 공간보다 큽니다.The number of elements in the source BitArray is greater than the available space from index to the end of the destination array.

소스 BitArray의 형식을 대상 array의 형식으로 자동 캐스팅할 수 없습니다.The type of the source BitArray cannot be cast automatically to the type of the destination array.

예제

다음 코드 예제에서는 BitArray 1 차원 Array에 복사 하는 방법을 보여 줍니다.The following code example shows how to copy a BitArray into a one-dimensional Array.

using namespace System;
using namespace System::Collections;
void PrintValues( IEnumerable^ myArr );
int main()
{
   // Creates and initializes the source BitArray.
   BitArray^ myBA = gcnew BitArray( 4 );
   myBA[ 0 ] = true;
   myBA[ 1 ] = true;
   myBA[ 2 ] = true;
   myBA[ 3 ] = true;

   // Creates and initializes the one-dimensional target Array of type Boolean.
   array<Boolean>^myBoolArray = gcnew array<Boolean>(8);
   myBoolArray[ 0 ] = false;
   myBoolArray[ 1 ] = false;

   // Displays the values of the target Array.
   Console::WriteLine( "The target Boolean Array contains the following (before and after copying):" );
   PrintValues( dynamic_cast<IEnumerable^>(myBoolArray) );

   // Copies the entire source BitArray to the target BitArray, starting at index 3.
   myBA->CopyTo( myBoolArray, 3 );

   // Displays the values of the target Array.
   PrintValues( dynamic_cast<IEnumerable^>(myBoolArray) );

   // Creates and initializes the one-dimensional target Array of type integer.
   array<Int32>^myIntArray = gcnew array<Int32>(8);
   myIntArray[ 0 ] = 42;
   myIntArray[ 1 ] = 43;

   // Displays the values of the target Array.
   Console::WriteLine( "The target integer Array contains the following (before and after copying):" );
   PrintValues( dynamic_cast<IEnumerable^>(myIntArray) );

   // Copies the entire source BitArray to the target BitArray, starting at index 3.
   myBA->CopyTo( myIntArray, 3 );

   // Displays the values of the target Array.
   PrintValues( dynamic_cast<IEnumerable^>(myIntArray) );

   // Creates and initializes the one-dimensional target Array of type byte.
   Array^ myByteArray = Array::CreateInstance( Byte::typeid, 8 );
   myByteArray->SetValue( (Byte)10, 0 );
   myByteArray->SetValue( (Byte)11, 1 );

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

   // Copies the entire source BitArray to the target BitArray, starting at index 3.
   myBA->CopyTo( myByteArray, 3 );

   // Displays the values of the target Array.
   PrintValues( myByteArray );

   // Returns an exception if the array is not of type Boolean, integer or byte.
   try
   {
      Array^ myStringArray = Array::CreateInstance( String::typeid, 8 );
      myStringArray->SetValue( "Hello", 0 );
      myStringArray->SetValue( "World", 1 );
      myBA->CopyTo( myStringArray, 3 );
   }
   catch ( Exception^ myException ) 
   {
      Console::WriteLine( "Exception: {0}", myException );
   }

}

void PrintValues( IEnumerable^ myArr )
{
   IEnumerator^ myEnum = myArr->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Object^ obj = safe_cast<Object^>(myEnum->Current);
      Console::Write( "{0,8}", obj );
   }

   Console::WriteLine();
}

/* 
 This code produces the following output.
 
 The target Boolean Array contains the following (before and after copying):
    False   False   False   False   False   False   False   False
    False   False   False    True    True    True    True   False
 The target integer Array contains the following (before and after copying):
       42      43       0       0       0       0       0       0
       42      43       0      15       0       0       0       0
 The target byte Array contains the following (before and after copying):
       10      11       0       0       0       0       0       0
       10      11       0      15       0       0       0       0
 Exception: System.ArgumentException: Only supported array types for CopyTo on BitArrays are Boolean[], Int32[] and Byte[].
    at System.Collections.BitArray.CopyTo(Array array, Int32 index)
    at SamplesBitArray.Main()

 */
using System;
using System.Collections;
public class SamplesBitArray  {

   public static void Main()  {

      // Creates and initializes the source BitArray.
      BitArray myBA = new BitArray( 4 );
      myBA[0] = myBA[1] = myBA[2] = myBA[3] = true;

      // Creates and initializes the one-dimensional target Array of type Boolean.
      bool[] myBoolArray = new bool[8];
      myBoolArray[0] = false;
      myBoolArray[1] = false;

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

      // Copies the entire source BitArray to the target BitArray, starting at index 3.
      myBA.CopyTo( myBoolArray, 3 );

      // Displays the values of the target Array.
      PrintValues( myBoolArray );

      // Creates and initializes the one-dimensional target Array of type integer.
      int[] myIntArray = new int[8];
      myIntArray[0] = 42;
      myIntArray[1] = 43;

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

      // Copies the entire source BitArray to the target BitArray, starting at index 3.
      myBA.CopyTo( myIntArray, 3 );

      // Displays the values of the target Array.
      PrintValues( myIntArray );

      // Creates and initializes the one-dimensional target Array of type byte.
      Array myByteArray = Array.CreateInstance( typeof(byte), 8 );
      myByteArray.SetValue( (byte) 10, 0 );
      myByteArray.SetValue( (byte) 11, 1 );

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

      // Copies the entire source BitArray to the target BitArray, starting at index 3.
      myBA.CopyTo( myByteArray, 3 );

      // Displays the values of the target Array.
      PrintValues( myByteArray );

      // Returns an exception if the array is not of type Boolean, integer or byte.
      try  {
         Array myStringArray=Array.CreateInstance( typeof(String), 8 );
         myStringArray.SetValue( "Hello", 0 );
         myStringArray.SetValue( "World", 1 );
         myBA.CopyTo( myStringArray, 3 );
      } catch ( Exception myException )  {
         Console.WriteLine("Exception: " + myException.ToString());
      }
   }

   public static void PrintValues( IEnumerable myArr )  {
      foreach ( Object obj in myArr ) {
         Console.Write( "{0,8}", obj );
      }
      Console.WriteLine();
   }
}


/* 
This code produces the following output.

The target Boolean Array contains the following (before and after copying):
   False   False   False   False   False   False   False   False
   False   False   False    True    True    True    True   False
The target integer Array contains the following (before and after copying):
      42      43       0       0       0       0       0       0
      42      43       0      15       0       0       0       0
The target byte Array contains the following (before and after copying):
      10      11       0       0       0       0       0       0
      10      11       0      15       0       0       0       0
Exception: System.ArgumentException: Only supported array types for CopyTo on BitArrays are Boolean[], Int32[] and Byte[].
   at System.Collections.BitArray.CopyTo(Array array, Int32 index)
   at SamplesBitArray.Main()

*/
Imports System.Collections

Public Class SamplesBitArray

    Public Shared Sub Main()

        ' Creates and initializes the source BitArray.
        Dim myBA As New BitArray(4)
        myBA(0) = True
        myBA(1) = True
        myBA(2) = True
        myBA(3) = True

        ' Creates and initializes the one-dimensional target Array of type Boolean.
        Dim myBoolArray(7) As Boolean
        myBoolArray(0) = False
        myBoolArray(1) = False

        ' Displays the values of the target Array.
        Console.WriteLine("The target Boolean Array contains the following (before and after copying):")
        PrintValues(myBoolArray)

        ' Copies the entire source BitArray to the target BitArray, starting at index 3.
        myBA.CopyTo(myBoolArray, 3)

        ' Displays the values of the target Array.
        PrintValues(myBoolArray)

        ' Creates and initializes the one-dimensional target Array of type integer.
        Dim myIntArray(7) As Integer
        myIntArray(0) = 42
        myIntArray(1) = 43

        ' Displays the values of the target Array.
        Console.WriteLine("The target integer Array contains the following (before and after copying):")
        PrintValues(myIntArray)

        ' Copies the entire source BitArray to the target BitArray, starting at index 3.
        myBA.CopyTo(myIntArray, 3)

        ' Displays the values of the target Array.
        PrintValues(myIntArray)

        ' Creates and initializes the one-dimensional target Array of type byte.
        Dim myByteArray As Array = Array.CreateInstance(GetType(Byte), 8)
        myByteArray.SetValue(System.Convert.ToByte(10), 0)
        myByteArray.SetValue(System.Convert.ToByte(11), 1)

        ' Displays the values of the target Array.
        Console.WriteLine("The target byte Array contains the following (before and after copying):")
        PrintValues(myByteArray)

        ' Copies the entire source BitArray to the target BitArray, starting at index 3.
        myBA.CopyTo(myByteArray, 3)

        ' Displays the values of the target Array.
        PrintValues(myByteArray)

        ' Returns an exception if the array is not of type Boolean, integer or byte.
        Try
            Dim myStringArray As Array = Array.CreateInstance(GetType(String), 8)
            myStringArray.SetValue("Hello", 0)
            myStringArray.SetValue("World", 1)
            myBA.CopyTo(myStringArray, 3)
        Catch myException As Exception
            Console.WriteLine("Exception: " + myException.ToString())
        End Try

    End Sub

    Public Shared Sub PrintValues(myArr As IEnumerable)
        Dim obj As [Object]
        For Each obj In  myArr
            Console.Write("{0,8}", obj)
        Next obj
        Console.WriteLine()
    End Sub

End Class


' This code produces the following output.
' 
' The target Boolean Array contains the following (before and after copying):
'    False   False   False   False   False   False   False   False
'    False   False   False    True    True    True    True   False
' The target integer Array contains the following (before and after copying):
'       42      43       0       0       0       0       0       0
'       42      43       0      15       0       0       0       0
' The target byte Array contains the following (before and after copying):
'       10      11       0       0       0       0       0       0
'       10      11       0      15       0       0       0       0
' Exception: System.ArgumentException: Only supported array types for CopyTo on BitArrays are Boolean[], Int32[] and Byte[].
'    at System.Collections.BitArray.CopyTo(Array array, Int32 index)
'    at SamplesBitArray.Main()

설명

지정된 된 배열의 호환 되는 형식 이어야 합니다.The specified array must be of a compatible type. bool, intbyte 형식의 배열만 지원 됩니다.Only bool, int, and byte types of arrays are supported.

이 메서드는 Array.Copy을 사용 하 여 요소를 복사 합니다.This method uses Array.Copy to copy the elements.

이 메서드는 n Count되는 O(n) 작업입니다.This method is an O(n) operation, where n is Count.

적용 대상

추가 정보