ArrayList.ToArray 方法
定义
重载
ToArray() |
将 ArrayList 的元素复制到新 Object 数组中。Copies the elements of the ArrayList to a new Object array. |
ToArray(Type) |
将 ArrayList 的元素复制到新的指定元素类型数组中。Copies the elements of the ArrayList to a new array of the specified element type. |
ToArray()
public:
virtual cli::array <System::Object ^> ^ ToArray();
public virtual object[] ToArray ();
public virtual object?[] ToArray ();
abstract member ToArray : unit -> obj[]
override this.ToArray : unit -> obj[]
Public Overridable Function ToArray () As Object()
返回
- Object[]
一个包含 ArrayList 的元素副本的 Object 数组。An Object array containing copies of the elements of the ArrayList.
注解
使用 Array.Copy (一个 O(n)
操作,其中为)复制元素 n
Count 。The elements are copied using Array.Copy, which is an O(n)
operation, where n
is Count.
适用于
ToArray(Type)
public:
virtual Array ^ ToArray(Type ^ type);
public virtual Array ToArray (Type type);
abstract member ToArray : Type -> Array
override this.ToArray : Type -> Array
Public Overridable Function ToArray (type As Type) As Array
参数
- type
- Type
要创建和复制元素的目标数组的元素 Type。The element Type of the destination array to create and copy elements to.
返回
包含 ArrayList 的元素副本的指定元素类型数组。An array of the specified element type containing copies of the elements of the ArrayList.
例外
type
为 null
。type
is null
.
源 ArrayList 的类型无法自动转换为指定类型。The type of the source ArrayList cannot be cast automatically to the specified type.
示例
下面的复制示例演示如何将的元素复制 ArrayList 到字符串数组。The following copy example shows how to copy the elements of an ArrayList to a string array.
using namespace System;
using namespace System::Collections;
void PrintIndexAndValues( ArrayList^ myList );
void PrintIndexAndValues( array<String^>^myArr );
int main()
{
// Creates and initializes a new ArrayList.
ArrayList^ myAL = gcnew ArrayList;
myAL->Add( "The" );
myAL->Add( "quick" );
myAL->Add( "brown" );
myAL->Add( "fox" );
myAL->Add( "jumps" );
myAL->Add( "over" );
myAL->Add( "the" );
myAL->Add( "lazy" );
myAL->Add( "dog" );
// Displays the values of the ArrayList.
Console::WriteLine( "The ArrayList contains the following values:" );
PrintIndexAndValues( myAL );
// Copies the elements of the ArrayList to a string array.
array<String^>^myArr = reinterpret_cast<array<String^>^>(myAL->ToArray( String::typeid ));
// Displays the contents of the string array.
Console::WriteLine( "The string array contains the following values:" );
PrintIndexAndValues( myArr );
}
void PrintIndexAndValues( ArrayList^ myList )
{
int i = 0;
IEnumerator^ myEnum = myList->GetEnumerator();
while ( myEnum->MoveNext() )
{
Object^ o = safe_cast<Object^>(myEnum->Current);
Console::WriteLine( "\t[{0}]:\t{1}", i++, o );
}
Console::WriteLine();
}
void PrintIndexAndValues( array<String^>^myArr )
{
for ( int i = 0; i < myArr->Length; i++ )
Console::WriteLine( "\t[{0}]:\t{1}", i, myArr[ i ] );
Console::WriteLine();
}
/*
This code produces the following output.
The ArrayList contains the following values:
[0]: The
[1]: quick
[2]: brown
[3]: fox
[4]: jumps
[5]: over
[6]: the
[7]: lazy
[8]: dog
The string array contains the following values:
[0]: The
[1]: quick
[2]: brown
[3]: fox
[4]: jumps
[5]: over
[6]: the
[7]: lazy
[8]: dog
*/
using System;
using System.Collections;
public class SamplesArrayList {
public static void Main() {
// Creates and initializes a new ArrayList.
ArrayList myAL = new ArrayList();
myAL.Add( "The" );
myAL.Add( "quick" );
myAL.Add( "brown" );
myAL.Add( "fox" );
myAL.Add( "jumps" );
myAL.Add( "over" );
myAL.Add( "the" );
myAL.Add( "lazy" );
myAL.Add( "dog" );
// Displays the values of the ArrayList.
Console.WriteLine( "The ArrayList contains the following values:" );
PrintIndexAndValues( myAL );
// Copies the elements of the ArrayList to a string array.
String[] myArr = (String[]) myAL.ToArray( typeof( string ) );
// Displays the contents of the string array.
Console.WriteLine( "The string array contains the following values:" );
PrintIndexAndValues( myArr );
}
public static void PrintIndexAndValues( ArrayList myList ) {
int i = 0;
foreach ( Object o in myList )
Console.WriteLine( "\t[{0}]:\t{1}", i++, o );
Console.WriteLine();
}
public static void PrintIndexAndValues( String[] myArr ) {
for ( int i = 0; i < myArr.Length; i++ )
Console.WriteLine( "\t[{0}]:\t{1}", i, myArr[i] );
Console.WriteLine();
}
}
/*
This code produces the following output.
The ArrayList contains the following values:
[0]: The
[1]: quick
[2]: brown
[3]: fox
[4]: jumps
[5]: over
[6]: the
[7]: lazy
[8]: dog
The string array contains the following values:
[0]: The
[1]: quick
[2]: brown
[3]: fox
[4]: jumps
[5]: over
[6]: the
[7]: lazy
[8]: dog
*/
Imports System.Collections
Public Class SamplesArrayList
Public Shared Sub Main()
' Creates and initializes a new ArrayList.
Dim myAL As New ArrayList()
myAL.Add("The")
myAL.Add("quick")
myAL.Add("brown")
myAL.Add("fox")
myAL.Add("jumps")
myAL.Add("over")
myAL.Add("the")
myAL.Add("lazy")
myAL.Add("dog")
' Displays the values of the ArrayList.
Console.WriteLine("The ArrayList contains the following values:")
PrintIndexAndValues(myAL)
' Copies the elements of the ArrayList to a string array.
Dim myArr As String() = CType(myAL.ToArray(GetType(String)), String())
' Displays the contents of the string array.
Console.WriteLine("The string array contains the following values:")
PrintIndexAndValues(myArr)
End Sub
Overloads Public Shared Sub PrintIndexAndValues(myList As ArrayList)
Dim i As Integer = 0
Dim o As [Object]
For Each o In myList
Console.WriteLine(" [{0}]: {1}", i, o)
i = i + 1
Next o
Console.WriteLine()
End Sub
Overloads Public Shared Sub PrintIndexAndValues(myArr() As String)
Dim i As Integer
For i = 0 To myArr.Length - 1
Console.WriteLine(" [{0}]: {1}", i, myArr(i))
Next i
Console.WriteLine()
End Sub
End Class
'This code produces the following output.
'
'The ArrayList contains the following values:
' [0]: The
' [1]: quick
' [2]: brown
' [3]: fox
' [4]: jumps
' [5]: over
' [6]: the
' [7]: lazy
' [8]: dog
'
'The string array contains the following values:
' [0]: The
' [1]: quick
' [2]: brown
' [3]: fox
' [4]: jumps
' [5]: over
' [6]: the
' [7]: lazy
' [8]: dog
注解
对象中的所有对象 ArrayList 都将转换为 Type 参数中指定的 type
。All of the objects in the ArrayList object will be cast to the Type specified in the type
parameter.
使用 Array.Copy (一个 O(n)
操作,其中为)复制元素 n
Count 。The elements are copied using Array.Copy, which is an O(n)
operation, where n
is Count.