BitArray.CopyTo(Array, Int32) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
Public Sub CopyTo (array As Array, index As Integer)
Parametreler
- array
- Array
öğesinden BitArraykopyalanan öğelerin hedefi olan tek boyutludurArray. sıfır Array tabanlı dizine sahip olmalıdır.
- index
- Int32
array
içinde kopyalamanın başladığı sıfır tabanlı dizin.
Uygulamalar
Özel durumlar
array
, null
değeridir.
index
, sıfırdan küçüktür.
array
çok boyutludur.
-veya-
Kaynaktaki BitArray öğelerin sayısı, hedef array
öğesinin sonuna kadar olan kullanılabilir alandan index
büyüktür.
Kaynağın BitArray türü otomatik olarak hedef array
türüne türlenemez.
Örnekler
Aşağıdaki kod örneği, bir BitArray öğesinin tek boyutlu Arraybir içine nasıl kopyalanmasını gösterir.
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, int 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()
Açıklamalar
Belirtilen dizi uyumlu bir türde olmalıdır. Yalnızca bool
, int
ve byte
dizi türleri desteklenir.
Bu yöntem, öğeleri kopyalamak için kullanır Array.Copy .
Bu yöntem bir O(n)
işlemdir ve burada n
şeklindedir Count.