Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le matrici unidimensionali con un limite inferiore pari a zero implementano IList<T>automaticamente . In questo modo è possibile creare metodi generici che possono usare lo stesso codice per scorrere matrici e altri tipi di raccolta. Questa tecnica è utile principalmente per la lettura dei dati nelle raccolte. L'interfaccia IList<T> non può essere utilizzata per aggiungere o rimuovere elementi da una matrice. Verrà generata un'eccezione se si tenta di chiamare un metodo come IList<T> su un array in questo contesto RemoveAt.
Nell'esempio di codice seguente viene illustrato come un singolo metodo generico che accetta un IList<T> parametro di input possa scorrere sia un elenco che una matrice, in questo caso una matrice di numeri interi.
class Program
{
static void Main()
{
int[] arr = [0, 1, 2, 3, 4];
List<int> list = new List<int>();
for (int x = 5; x < 10; x++)
{
list.Add(x);
}
ProcessItems<int>(arr);
ProcessItems<int>(list);
}
static void ProcessItems<T>(IList<T> coll)
{
// IsReadOnly returns True for the array and False for the List.
System.Console.WriteLine
("IsReadOnly returns {0} for this collection.",
coll.IsReadOnly);
// The following statement causes a run-time exception for the
// array, but not for the List.
//coll.RemoveAt(4);
foreach (T item in coll)
{
System.Console.Write(item?.ToString() + " ");
}
System.Console.WriteLine();
}
}