Lezen in het Engels

Delen via


Generics and Arrays (C#Programming Guide)

Eendimensionale matrices met een ondergrens van nul worden automatisch geïmplementeerd IList<T>. Hiermee kunt u algemene methoden maken die dezelfde code kunnen gebruiken om matrices en andere verzamelingstypen te doorlopen. Deze techniek is voornamelijk handig voor het lezen van gegevens in verzamelingen. De IList<T> interface kan niet worden gebruikt om elementen toe te voegen aan of te verwijderen uit een matrix. Er wordt een uitzondering gegenereerd als u probeert een IList<T> methode aan te roepen, zoals RemoveAt in een matrix in deze context.

In het volgende codevoorbeeld ziet u hoe één algemene methode die een IList<T> invoerparameter gebruikt, zowel een lijst als een matrix kan doorlopen, in dit geval een matrix met gehele getallen.

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

Zie ook


Aanvullende resources

Documentatie

  • Algemene typeparameters - C#

    Meer informatie over de algemene typedefinitie in C#, waarbij een typeparameter een tijdelijke aanduiding is voor een type dat een client opgeeft voor een exemplaar van het algemene type.

  • Algemene klassen - C#

    Meer informatie over algemene klassen die worden gebruikt in verzamelingen, zoals gekoppelde lijsten, hashtabellen, stacks, wachtrijen en bomen.

  • Algemene klassen en methoden - C#

    Meer informatie over generics. Algemene typen maximaliseren hergebruik van code, typeveiligheid en prestaties en worden vaak gebruikt om verzamelingsklassen te maken.