ReadOnlyCollection<T>.CopyTo(T[], Int32) Méthode

Définition

Copie l'ensemble de l'objet ReadOnlyCollection<T> vers un objet Array unidimensionnel compatible, en commençant à l'index spécifié du tableau cible.

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

Paramètres

array
T[]

Array unidimensionnel qui constitue la destination des éléments copiés à partir de ReadOnlyCollection<T>. Array doit avoir une indexation de base zéro.

index
Int32

Index de base zéro dans l'array à partir duquel la copie commence.

Implémente

Exceptions

array a la valeur null.

index est inférieur à zéro.

Le nombre d’éléments dans le ReadOnlyCollection<T> source est supérieur à la quantité d’espace disponible entre index et la fin du array de destination.

Exemples

L’exemple de code suivant illustre plusieurs membres de la ReadOnlyCollection<T> classe. L’exemple de code crée un List<T> de chaînes et y ajoute quatre noms de dinosaures. L’exemple de code encapsule ensuite la liste dans un ReadOnlyCollection<T>.

Après avoir montré les Countmembres , Contains, Item[]et IList.IndexOf , l’exemple de code montre qu’il ReadOnlyCollection<T> s’agit simplement d’un wrapper pour l’original List<T> en ajoutant un nouvel élément au List<T> et en affichant le contenu de .ReadOnlyCollection<T>

Enfin, l’exemple de code crée un tableau plus grand que la collection et utilise la CopyTo méthode pour insérer les éléments de la collection au milieu du tableau.

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

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

        dinosaurs.Add("Tyrannosaurus");
        dinosaurs.Add("Amargasaurus");
        dinosaurs.Add("Deinonychus");
        dinosaurs.Add("Compsognathus");

        ReadOnlyCollection<string> readOnlyDinosaurs =
            new ReadOnlyCollection<string>(dinosaurs);

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

        Console.WriteLine("\nCount: {0}", readOnlyDinosaurs.Count);

        Console.WriteLine("\nContains(\"Deinonychus\"): {0}",
            readOnlyDinosaurs.Contains("Deinonychus"));

        Console.WriteLine("\nreadOnlyDinosaurs[3]: {0}",
            readOnlyDinosaurs[3]);

        Console.WriteLine("\nIndexOf(\"Compsognathus\"): {0}",
            readOnlyDinosaurs.IndexOf("Compsognathus"));

        Console.WriteLine("\nInsert into the wrapped List:");
        Console.WriteLine("Insert(2, \"Oviraptor\")");
        dinosaurs.Insert(2, "Oviraptor");

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

        string[] dinoArray = new string[readOnlyDinosaurs.Count + 2];
        readOnlyDinosaurs.CopyTo(dinoArray, 1);

        Console.WriteLine("\nCopied array has {0} elements:",
            dinoArray.Length);
        foreach( string dinosaur in dinoArray )
        {
            Console.WriteLine("\"{0}\"", dinosaur);
        }
    }
}

/* This code example produces the following output:

Tyrannosaurus
Amargasaurus
Deinonychus
Compsognathus

Count: 4

Contains("Deinonychus"): True

readOnlyDinosaurs[3]: Compsognathus

IndexOf("Compsognathus"): 3

Insert into the wrapped List:
Insert(2, "Oviraptor")

Tyrannosaurus
Amargasaurus
Oviraptor
Deinonychus
Compsognathus

Copied array has 7 elements:
""
"Tyrannosaurus"
"Amargasaurus"
"Oviraptor"
"Deinonychus"
"Compsognathus"
""
 */

Remarques

Cette méthode utilise Array.Copy pour copier les éléments.

Les éléments sont copiés dans le Array dans le même ordre que celui où l’énumérateur effectue une itération dans le ReadOnlyCollection<T>.

Cette méthode est une opération O(n), où n est Count.

S’applique à

Produit Versions
.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.5, 1.6, 2.0, 2.1
UWP 10.0