Udostępnij za pośrednictwem


Typy ogólne i tablice (Przewodnik programowania w języku C#)

Tablice jednowymiarowe, które mają dolną granicę zerową, automatycznie implementują wartość IList<T>. Dzięki temu można tworzyć metody ogólne, które mogą wykorzystywać ten sam kod do iterowania przez tablice i inne typy kolekcji. Ta technika jest szczególnie przydatna do odczytywania danych w kolekcjach. Interfejs IList<T> nie może służyć do dodawania ani usuwania elementów z tablicy. Wyjątek zostanie zgłoszony, jeśli spróbujesz wywołać metodę IList<T> , taką jak RemoveAt na tablicy w tym kontekście.

W poniższym przykładzie kodu pokazano, jak pojedyncza metoda ogólna, która przyjmuje IList<T> parametr wejściowy, może iterować zarówno przez listę, jak i tablicę, w tym przypadku tablicę liczb całkowitych.

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

Zobacz także