Metodo ReadOnlyCollection.CopyTo
Assembly: mscorlib (in mscorlib.dll)
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 eccezione | Condizione |
|---|---|
| array è riferimento null (Nothing in Visual Basic). | |
| index è minore di zero. | |
| 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.