Questo argomento non è stato ancora valutato - Valuta questo argomento

Metodo ReadOnlyCollection.CopyTo

Nota: questo metodo è stato introdotto con .NET Framework versione 2.0.

Copia l'intero ReadOnlyCollection in un oggetto Array compatibile unidimensionale, a partire dall'indice specificato della matrice di destinazione.

Spazio dei nomi: System.Collections.ObjectModel
Assembly: mscorlib (in 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
)

Parametri

array

Oggetto unidimensionale Array che rappresenta la destinazione degli elementi copiati dall'oggetto ReadOnlyCollection. L'indicizzazione di Array deve avere base zero.

index

Indice a base zero in array in corrispondenza del quale ha inizio la copia.

Tipo di eccezioneCondizione

ArgumentNullException

array è riferimento null (Nothing in Visual Basic).

ArgumentOutOfRangeException

index è minore di zero.

ArgumentException

index è maggiore o uguale alla lunghezza di array.

-oppure-

Il numero degli elementi nell'oggetto ReadOnlyCollection di origine è maggiore dello spazio disponibile tra index e la fine dell'oggetto array di destinazione.

Questo metodo utilizza System.Array.Copy per copiare gli elementi.

Gli elementi vengono copiati nella matrice Array nello stesso ordine in base al quale l'enumeratore scorre la classe ReadOnlyCollection.

Questo metodo è un'operazione O(n), dove n è Count.

Nell'esempio di codice riportato di seguito vengono illustrati diversi membri della classe ReadOnlyCollection. Nell'esempio di codice viene creata una classe List di stringhe e vi vengono aggiunti quattro nomi di dinosauro. Viene quindi eseguito il wrapping dell'elenco in una classe ReadOnlyCollection.

Dopo aver illustrato i membri Count, Contains, Item e System.Collections.IList.IndexOf, viene dimostrato che ReadOnlyCollection è solo un wrapper per la classe originale List aggiungendo un nuovo elemento alla classe List e visualizzando il contenuto della classe ReadOnlyCollection.

Infine viene creata una matrice più grande dell'insieme e viene utilizzato il metodo CopyTo per inserire gli elementi dell'insieme nella parte centrale della matrice.

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 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

.NET Framework

Supportato in: 2.0

.NET Compact Framework

Supportato in: 2.0
Il documento è risultato utile?
(1500 caratteri rimanenti)

Aggiunte alla community

AGGIUNGI
© 2013 Microsoft. Tutti i diritti riservati.