Exporter (0) Imprimer
Développer tout

ReadOnlyCollection<T>.CopyTo, méthode

Mise à jour : novembre 2007

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

Espace de noms :  System.Collections.ObjectModel
Assembly :  mscorlib (dans mscorlib.dll)

public void CopyTo(
	T[] array,
	int index
)
public final void CopyTo(
	T[] array,
	int index
)
public final function CopyTo(
	array : T[], 
	index : int
)

Paramètres

array
Type : 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
Type : System.Int32

Index de base zéro dans array au niveau duquel commencer la copie.

Implémentations

ICollection<T>.CopyTo(T[], Int32)

ExceptionCondition
ArgumentNullException

array est null.

ArgumentOutOfRangeException

index est inférieur à zéro.

ArgumentException

index est supérieur ou égal à la longueur de array.

- ou -

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.

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

Les éléments sont copiés dans Array dans l'ordre dans lequel l'énumérateur parcourt ReadOnlyCollection<T>.

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

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

Après la démonstration des membres Count, Contains, Item et IList.IndexOf, l'exemple de code indique que ReadOnlyCollection<T> est simplement un wrapper du List<T> d'origine en ajoutant un nouvel élément à 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 méthode CopyTo pour insérer les éléments de la collection au milieu du tableau.

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"
""
 */


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile pour Smartphone, Windows Mobile pour Pocket PC, Xbox 360

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0

.NET Compact Framework

Pris en charge dans : 3.5, 2.0

XNA Framework

Pris en charge dans : 2.0, 1.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft