Generika und Arrays (C#-Programmierhandbuch)Generics and Arrays (C# Programming Guide)

In C# 2.0 oder höher implementieren eindimensionale Arrays, die als untere Grenze 0 (null) aufweisen, IList<T> automatisch.In C# 2.0 and later, single-dimensional arrays that have a lower bound of zero automatically implement IList<T>. So können Sie generische Methoden erstellen, die zum Durchlaufen von Arrays und anderen Auflistungstypen den gleichen Code verwenden können.This enables you to create generic methods that can use the same code to iterate through arrays and other collection types. Diese Technik ist vor allem zum Lesen der Daten in Auflistungen nützlich.This technique is primarily useful for reading data in collections. Die Schnittstelle IList<T> kann nicht verwendet werden, um Elemente einem Array hinzuzufügen oder daraus zu entfernen.The IList<T> interface cannot be used to add or remove elements from an array. Bei dem Versuch, eine IList<T>-Methode wie RemoveAt für ein Array in diesem Kontext aufzurufen, wird eine Ausnahme ausgelöst.An exception will be thrown if you try to call an IList<T> method such as RemoveAt on an array in this context.

Das folgende Codebeispiel veranschaulicht, wie eine einzelne generische Methode, die einen IList<T>-Eingabeparameter verwendet, sowohl eine Liste als auch ein Array (in diesem Fall ein Array mit ganzen Zahlen) durchlaufen kann.The following code example demonstrates how a single generic method that takes an IList<T> input parameter can iterate through both a list and an array, in this case an array of integers.

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

Siehe auchSee Also

System.Collections.Generic
C#-ProgrammierhandbuchC# Programming Guide
GenerikaGenerics
ArraysArrays
GenerikaGenerics