BitArray.CopyTo Method
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Namespace: System.Collections
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Sub CopyTo ( _
array As Array, _
index As Integer _
)
public void CopyTo(
Array array,
int index
)
Parameters
- array
Type: System.Array
The one-dimensional Array that is the destination of the elements copied from BitArray. The Array must have zero-based indexing.
- index
Type: System.Int32
The zero-based index in array at which copying begins.
Implements
Exceptions
Exception | Condition |
---|---|
ArgumentNullException | array is nulla null reference (Nothing in Visual Basic). |
ArgumentOutOfRangeException | index is less than zero. |
ArgumentException | array is multidimensional. -or- The number of elements in the source BitArray is greater than the available space from index to the end of the destination array. |
InvalidCastException | The type of the source BitArray cannot be cast automatically to the type of the destination array. |
Remarks
The specified array must be of a compatible type. Only bool, int, and byte types of arrays are supported.
This method uses Array.Copy to copy the elements.
This method is an O(n) operation, where n is Count.
Examples
The following code example shows how to copy a BitArray into a one-dimensional Array.
Imports System.Collections
Public Class Example
Public Shared Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
' 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.
outputBlock.Text &= "The target Boolean Array contains the following (before and after copying):" & vbCrLf
PrintValues(outputBlock, 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(outputBlock, 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.
outputBlock.Text &= "The target Boolean Array contains the following (before and after copying):" & vbCrLf
PrintValues(outputBlock, 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(outputBlock, myIntArray)
' Creates and initializes the one-dimensional target Array of type integer.
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.
outputBlock.Text &= "The target Boolean Array contains the following (before and after copying):" & vbCrLf
PrintValues(outputBlock, 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(outputBlock, 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
outputBlock.Text &= "Exception: " + myException.ToString() & vbCrLf
End Try
End Sub 'Main
Public Shared Sub PrintValues(ByVal outputBlock As System.Windows.Controls.TextBlock, ByVal myArr As IEnumerable)
Dim obj As [Object]
For Each obj In myArr
outputBlock.Text += String.Format("{0,8}", obj)
Next obj
outputBlock.Text &= vbCrLf
End Sub 'PrintValues
End Class 'SamplesBitArray
' 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 Boolean 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 Boolean 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 Example
{
public static void Demo(System.Windows.Controls.TextBlock outputBlock)
{
// 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.
outputBlock.Text += "The target Boolean Array contains the following (before and after copying):" + "\n";
PrintValues(outputBlock, 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(outputBlock, 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.
outputBlock.Text += "The target Boolean Array contains the following (before and after copying):" + "\n";
PrintValues(outputBlock, 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(outputBlock, myIntArray);
// Creates and initializes the one-dimensional target Array of type integer.
Array myByteArray = Array.CreateInstance(typeof(byte), 8);
myByteArray.SetValue((byte)10, 0);
myByteArray.SetValue((byte)11, 1);
// Displays the values of the target Array.
outputBlock.Text += "The target Boolean Array contains the following (before and after copying):" + "\n";
PrintValues(outputBlock, 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(outputBlock, 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)
{
outputBlock.Text += "Exception: " + myException.ToString() + "\n";
}
}
public static void PrintValues(System.Windows.Controls.TextBlock outputBlock, IEnumerable myArr)
{
foreach (Object obj in myArr)
{
outputBlock.Text += String.Format("{0,8}", obj);
}
outputBlock.Text += "\n";
}
}
/*
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 Boolean 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 Boolean 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()
*/
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
XNA Framework
Supported in: Xbox 360, Windows Phone OS 7.0
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.