ArraysArrays

Ein Array ist eine Datenstruktur, die eine Anzahl von Variablen enthält, auf die über berechnete Indizes zugegriffen wird.An array is a data structure that contains a number of variables that are accessed through computed indices. Die im Array enthaltenen Variablen, auch Elemente des Arrays genannt, weisen alle denselben Typ auf. Dieser Typ wird als Elementtyp des Arrays bezeichnet.The variables contained in an array, also called the elements of the array, are all of the same type, and this type is called the element type of the array.

Arraytypen sind Verweistypen, und die Deklaration einer Arrayvariablen reserviert Speicher für einen Verweis auf eine Arrayinstanz.Array types are reference types, and the declaration of an array variable simply sets aside space for a reference to an array instance. Die tatsächlichen Arrayinstanzen werden unter Verwendung des new-Operators zur Laufzeit dynamisch erstellt.Actual array instances are created dynamically at runtime using the new operator. Der new-Vorgang legt die Länge der neuen Arrayinstanz fest, die dann für die Lebensdauer der Instanz beibehalten wird.The new operation specifies the length of the new array instance, which is then fixed for the lifetime of the instance. Die Indizes der Arrayelemente reichen von 0 bis Length - 1.The indices of the elements of an array range from 0 to Length - 1. Der new-Operator initialisiert die Elemente eines Arrays automatisch mit ihren Standardwerten. Dieser lautet z.B. für alle numerischen Typen 0 und für alle Verweistypen null.The new operator automatically initializes the elements of an array to their default value, which, for example, is zero for all numeric types and null for all reference types.

Im folgenden Beispiel wird ein Array aus int-Elementen erstellt. Anschließend wird das Array initialisiert und die Inhalte des Arrays werden gedruckt.The following example creates an array of int elements, initializes the array, and prints out the contents of the array.

using System;
class ArrayExample
{
    static void Main() 
    {
        int[] a = new int[10];
        for (int i = 0; i < a.Length; i++) 
        {
            a[i] = i * i;
        }
        for (int i = 0; i < a.Length; i++) 
        {
            Console.WriteLine($"a[{i}] = {a[i]}");
        }
    }
}

Mit diesem Beispiel wird ein eindimensionales Array erstellt und verwendet.This example creates and operates on a single-dimensional array. C# unterstützt auch mehrdimensionale Arrays.C# also supports multi-dimensional arrays. Die Anzahl von Dimensionen eines Arraytyps, auch als Rang des Arraytyps bezeichnet, ist 1 plus die Anzahl von Kommas, die innerhalb der eckigen Klammern des Arraytyps angegeben ist.The number of dimensions of an array type, also known as the rank of the array type, is one plus the number of commas written between the square brackets of the array type. Mit dem folgenden Beispiel wird respektive ein eindimensionales, ein zweidimensionales und ein dreidimensionales Array erstellt.The following example allocates a single-dimensional, a two-dimensional, and a three-dimensional array, respectively.

int[] a1 = new int[10];
int[,] a2 = new int[10, 5];
int[,,] a3 = new int[10, 5, 2];

Das a1-Array enthält 10 Elemente, das a2-Array umfasst 50 (10 × 5) Elemente, und das a3-Array enthält 100 (10 × 5 × 2) Elemente.The a1 array contains 10 elements, the a2 array contains 50 (10 × 5) elements, and the a3 array contains 100 (10 × 5 × 2) elements. Ein Array kann einen beliebigen Elementtyp verwenden, einschließlich eines Arraytyps. The element type of an array can be any type, including an array type. Ein Array mit Elementen eines Arraytyps wird auch als verzweigtes Array bezeichnet, weil die Länge der Elementarrays nicht identisch sein muss.An array with elements of an array type is sometimes called a jagged array because the lengths of the element arrays do not all have to be the same. Im folgenden Beispiel wird ein Array aus int-Arrays zugewiesen:The following example allocates an array of arrays of int:

int[][] a = new int[3][];
a[0] = new int[10];
a[1] = new int[5];
a[2] = new int[20];

In der ersten Zeile wird ein Array mit drei Elementen erstellt, das jeweils den Typ int[] und einen Anfangswert von null aufweist.The first line creates an array with three elements, each of type int[] and each with an initial value of null. In den folgenden Zeilen werden die drei Elemente mit Verweisen auf einzelne Arrayinstanzen unterschiedlicher Länge initialisiert.The subsequent lines then initialize the three elements with references to individual array instances of varying lengths.

Der new-Operator erlaubt es, die Anfangswerte der Arrayelemente unter Verwendung eines Arrayinitialisierers anzugeben, bei dem es sich um eine Liste von Ausdrücken zwischen den Trennzeichen { und } handelt.The new operator permits the initial values of the array elements to be specified using an array initializer, which is a list of expressions written between the delimiters { and }. Mit dem folgenden Beispiel wird ein int[] mit drei Elementen zugewiesen und initialisiert.The following example allocates and initializes an int[] with three elements.

int[] a = new int[] {1, 2, 3};

Beachten Sie, dass die Länge des Arrays aus der Anzahl von Ausdrücken zwischen { und } abgeleitet wird.Note that the length of the array is inferred from the number of expressions between { and }. Deklarationen lokaler Variablen und Felder können weiter verkürzt werden, sodass der Arraytyp nicht erneut aufgeführt werden muss.Local variable and field declarations can be shortened further such that the array type does not have to be restated.

int[] a = {1, 2, 3};

Die zwei vorherigen Beispiele entsprechen dem folgenden:Both of the previous examples are equivalent to the following:

int[] t = new int[3];
t[0] = 1;
t[1] = 2;
t[2] = 3;
int[] a = t;