List<T>.CopyTo 方法

定义

List<T> 或它的一部分复制到一个数组中。

重载

CopyTo(T[], Int32)

从目标数组的指定索引处开始,将整个 List<T> 复制到兼容的一维数组。

CopyTo(Int32, T[], Int32, Int32)

从目标数组的指定索引处开始,将元素的范围从 List<T> 复制到兼容的一维数组。

CopyTo(T[])

从目标数组的开头开始,将整个 List<T> 复制到兼容的一维数组。

示例

以下示例演示 方法的所有三个 CopyTo 重载。 List<T>创建字符串的 ,并使用 5 个字符串进行填充。 创建一个包含 15 个元素的空字符串数组,并使用 CopyTo(T[]) 方法重载将列表的所有元素复制到从数组的第一个元素开始的数组。 方法 CopyTo(T[], Int32) 重载用于将列表的所有元素复制到从数组索引 6 开始的数组 (将索引 5 留空) 。 最后, CopyTo(Int32, T[], Int32, Int32) 方法重载用于将列表中的 3 个元素从索引 2 开始复制到从数组索引 12 开始的数组, (将索引 11 留空) 。 然后显示数组的内容。

C#
using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        List<string> dinosaurs = new List<string>();

        dinosaurs.Add("Tyrannosaurus");
        dinosaurs.Add("Amargasaurus");
        dinosaurs.Add("Mamenchisaurus");
        dinosaurs.Add("Brachiosaurus");
        dinosaurs.Add("Compsognathus");

        Console.WriteLine();
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        // Declare an array with 15 elements.
        string[] array = new string[15];

        dinosaurs.CopyTo(array);
        dinosaurs.CopyTo(array, 6);
        dinosaurs.CopyTo(2, array, 12, 3);

        Console.WriteLine("\nContents of the array:");
        foreach(string dinosaur in array)
        {
            Console.WriteLine(dinosaur);
        }
    }
}

/* This code example produces the following output:

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Brachiosaurus
Compsognathus

Contents of the array:
Tyrannosaurus
Amargasaurus
Mamenchisaurus
Brachiosaurus
Compsognathus

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Brachiosaurus
Compsognathus

Mamenchisaurus
Brachiosaurus
Compsognathus
 */

CopyTo(T[], Int32)

Source:
List.cs
Source:
List.cs
Source:
List.cs

从目标数组的指定索引处开始,将整个 List<T> 复制到兼容的一维数组。

C#
public void CopyTo (T[] array, int arrayIndex);

参数

array
T[]

一维 Array,它是从 List<T> 复制的元素的目标。 Array 必须具有从零开始的索引。

arrayIndex
Int32

array 中从零开始的索引,从此处开始复制。

实现

例外

arraynull

arrayIndex 小于 0。

List<T> 中的元素个数大于从 arrayIndex 到目标 array 末尾之间的可用空间。

注解

此方法使用 Array.Copy 复制元素。

元素将按照枚举器循环访问 的相同顺序复制到 ArrayList<T>

此方法是 O (n) 操作,其中 nCount

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

CopyTo(Int32, T[], Int32, Int32)

Source:
List.cs
Source:
List.cs
Source:
List.cs

从目标数组的指定索引处开始,将元素的范围从 List<T> 复制到兼容的一维数组。

C#
public void CopyTo (int index, T[] array, int arrayIndex, int count);

参数

index
Int32

复制即从源 List<T> 中从零开始的索引开始。

array
T[]

一维 Array,它是从 List<T> 复制的元素的目标。 Array 必须具有从零开始的索引。

arrayIndex
Int32

array 中从零开始的索引,从此处开始复制。

count
Int32

要复制的元素数。

例外

arraynull

index 小于 0。

arrayIndex 小于 0。

count 小于 0。

index 等于或大于源 List<T>Count

- 或 -

index 到源 List<T> 的末尾的元素数大于从 arrayIndex 到目标 array 的末尾的可用空间。

注解

此方法使用 Array.Copy 复制元素。

元素将按照枚举器循环访问 的相同顺序复制到 ArrayList<T>

此方法是 O (n) 操作,其中 ncount

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

CopyTo(T[])

Source:
List.cs
Source:
List.cs
Source:
List.cs

从目标数组的开头开始,将整个 List<T> 复制到兼容的一维数组。

C#
public void CopyTo (T[] array);

参数

array
T[]

一维 Array,它是从 List<T> 复制的元素的目标。 Array 必须具有从零开始的索引。

例外

arraynull

List<T> 中的元素个数大于目标 array 可以包含的元素个数。

注解

此方法使用 Array.Copy 复制元素。

元素将按照枚举器循环访问 的相同顺序复制到 ArrayList<T>

此方法是 O (n) 操作,其中 nCount

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0