BitArray.CopyTo 方法
从目标数组的指定索引处开始将整个 BitArray 复制到兼容的一维 Array。
**命名空间:**System.Collections
**程序集:**mscorlib(在 mscorlib.dll 中)
语法
声明
Public Sub CopyTo ( _
array As Array, _
index As Integer _
)
用法
Dim instance As BitArray
Dim array As Array
Dim index As Integer
instance.CopyTo(array, index)
public void CopyTo (
Array array,
int index
)
public:
virtual void CopyTo (
Array^ array,
int index
) sealed
public final void CopyTo (
Array array,
int index
)
public final function CopyTo (
array : Array,
index : int
)
参数
- index
array 中从零开始的索引,在此处开始复制。
异常
异常类型 | 条件 |
---|---|
array 为 空引用(在 Visual Basic 中为 Nothing)。 |
|
index 小于零。 |
|
array 是多维的。 - 或 - index 等于或大于 array 的长度。 - 或 - 源 BitArray 中的元素数目大于从 index 到目标 array 末尾之间的可用空间。 |
|
源 BitArray 的类型无法自动转换为目标 array 的类型。 |
备注
指定的数组必须是兼容类型的数组。仅支持 bool、int 和 byte 类型的数组。
此方法使用 Array.Copy 复制元素。
此方法的运算复杂度为 O(n),其中 n 是 Count。
示例
下面的代码示例演示如何将 BitArray 复制到一维 Array 中。
Imports System
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 Boolean 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 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.
Console.WriteLine("The target Boolean 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 'Main
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 '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 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 Boolean 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 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.
Console.WriteLine( "The target Boolean 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 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 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 Boolean 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 integer.
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 Boolean 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 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()
*/
import System.*;
import System.Collections.*;
public class SamplesBitArray
{
public static void main(String[] args)
{
// Creates and initializes the source BitArray.
BitArray myBA = new BitArray(4);
myBA.set_Item(0, true);
myBA.set_Item(1, true);
myBA.set_Item(2, true);
myBA.set_Item(3, true);
// Creates and initializes the one-dimensional target Array of
// type Boolean.
boolean myBoolArray[] = new 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(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 Boolean 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 integer.
Array myByteArray = Array.CreateInstance(ubyte.class.ToType(), 8);
myByteArray.SetValue((System.Byte)(10), 0);
myByteArray.SetValue((System.Byte)(11), 1);
// Displays the values of the target Array.
Console.WriteLine("The target Boolean 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.class.ToType(),8);
myStringArray.SetValue("Hello", 0);
myStringArray.SetValue("World", 1);
myBA.CopyTo(myStringArray, 3);
}
catch (System.Exception myException) {
Console.WriteLine(("Exception: " + myException.ToString()));
}
} //main
public static void PrintValues(IEnumerable myArr)
{
IEnumerator objMyEnum = myArr.GetEnumerator();
while (objMyEnum.MoveNext()) {
Object obj = objMyEnum.get_Current();
Console.Write("{0,8}", obj);
}
Console.WriteLine();
} //PrintValues
}//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(String[] args)
*/
平台
Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
版本信息
.NET Framework
受以下版本支持:2.0、1.1、1.0
.NET Compact Framework
受以下版本支持:2.0、1.0