Partager via


Génériques et tableaux (Guide de programmation C#)

Les tableaux unidimensionnels qui ont une limite inférieure de zéro implémentent IList<T>automatiquement . Cela vous permet de créer des méthodes génériques qui peuvent utiliser le même code pour itérer dans des tableaux et d’autres types de collection. Cette technique est principalement utile pour lire des données dans des collections. L’interface IList<T> ne peut pas être utilisée pour ajouter ou supprimer des éléments d’un tableau. Une exception est levée si vous essayez d’appeler une IList<T> méthode telle que RemoveAt sur un tableau dans ce contexte.

L’exemple de code suivant montre comment une méthode générique unique qui prend un paramètre d’entrée IList<T> peut itérer à la fois dans une liste et un tableau, dans ce cas un tableau d’entiers.

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();
    }
}

Voir aussi