Questa documentazione è stata archiviata e non viene gestita.

Metodo List.AsReadOnly

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

Restituisce un wrapper IList in sola lettura per l'insieme corrente.

Spazio dei nomi: System.Collections.Generic
Assembly: mscorlib (in mscorlib.dll)

public ReadOnlyCollection<T> AsReadOnly ()
public ReadOnlyCollection<T> AsReadOnly ()
public function AsReadOnly () : ReadOnlyCollection<T>

Valore restituito

Oggetto ReadOnlyCollection che funge da wrapper in sola lettura per l'oggetto List corrente.

Per evitare che List venga modificato, esporre questo parametro List solo tramite il wrapper.

Un insieme in sola lettura è semplicemente un insieme con un wrapper che ne impedisce la modifica. Per questo motivo, se vengono apportate modifiche all'insieme sottostante, l'insieme in sola lettura rifletterà tali modifiche.

Questo metodo costituisce un'operazione O(1).

Nell'esempio di codice riportato di seguito viene illustrato l'utilizzo del metodo AsReadOnly. Viene creato un oggetto List di stringhe con capacità pari a 4, in quanto è noto che la dimensione finale dell'elenco è esattamente 4. L'elenco viene compilato con quattro stringhe e viene utilizzato il metodo AsReadOnly per ottenere un'implementazione dell'interfaccia generica IList in sola lettura che include l'elenco originale.

Un elemento dell'elenco originale viene impostato su "Coelophysis" mediante la proprietà Item (l'indicizzatore in C#) e viene visualizzato nuovamente il contenuto dell'elenco in sola lettura per mostrare che si tratta di un wrapper dell'elenco originale.

using System;
using System.Collections.Generic;

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

        Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);

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

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

        Console.WriteLine("\nIList<string> roDinosaurs = dinosaurs.AsReadOnly()");
        IList<string> roDinosaurs = dinosaurs.AsReadOnly();

        Console.WriteLine("\nElements in the read-only IList:");
        foreach(string dinosaur in roDinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\ndinosaurs[2] = \"Coelophysis\"");
        dinosaurs[2] = "Coelophysis";

        Console.WriteLine("\nElements in the read-only IList:");
        foreach(string dinosaur in roDinosaurs)
        {
            Console.WriteLine(dinosaur);
        }
    }
}

/* This code example produces the following output:

Capacity: 4

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Deinonychus

IList<string> roDinosaurs = dinosaurs.AsReadOnly()

Elements in the read-only IList:
Tyrannosaurus
Amargasaurus
Mamenchisaurus
Deinonychus

dinosaurs[2] = "Coelophysis"

Elements in the read-only IList:
Tyrannosaurus
Amargasaurus
Coelophysis
Deinonychus
 */

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
Mostra: