Verzweigte Arrays (C#-Programmierhandbuch)Jagged Arrays (C# Programming Guide)

Ein verzweigtes Array ist ein Array, dessen Elemente wiederum Arrays sind.A jagged array is an array whose elements are arrays. Die Elemente eines verzweigten Arrays können eine unterschiedliche Dimension und Größe besitzen.The elements of a jagged array can be of different dimensions and sizes. Ein verzweigtes Array wird auch „Array aus Arrays“ genannt.A jagged array is sometimes called an "array of arrays." Die folgenden Beispiele zeigen, wie Sie verzweigte Arrays deklarieren, initialisieren und auf sie zugreifen können.The following examples show how to declare, initialize, and access jagged arrays.

Die folgende Deklaration veranschaulicht ein eindimensionales Array mit drei Elementen, von denen jedes wiederum ein eindimensionales Array aus ganzen Zahlen darstellt:The following is a declaration of a single-dimensional array that has three elements, each of which is a single-dimensional array of integers:

int[][] jaggedArray = new int[3][];

Vor der Verwendung von jaggedArray müssen seine Elemente initialisiert werden.Before you can use jaggedArray, its elements must be initialized. Sie können die Elemente folgendermaßen initialisieren:You can initialize the elements like this:

jaggedArray[0] = new int[5];
jaggedArray[1] = new int[4];
jaggedArray[2] = new int[2];

Jedes Element ist ein eindimensionales Array aus ganzen Zahlen.Each of the elements is a single-dimensional array of integers. Das erste Element ist ein Array aus 5 ganzen Zahlen, das zweite aus 4 und das dritte aus 2.The first element is an array of 5 integers, the second is an array of 4 integers, and the third is an array of 2 integers.

Sie können auch Initialisierer verwenden, um die Arrayelemente mit Werten zu füllen. In diesem Fall wird die Arraygröße nicht benötigt.It is also possible to use initializers to fill the array elements with values, in which case you do not need the array size. Zum Beispiel:For example:

jaggedArray[0] = new int[] { 1, 3, 5, 7, 9 };
jaggedArray[1] = new int[] { 0, 2, 4, 6 };
jaggedArray[2] = new int[] { 11, 22 };

Sie können das Array auch nach der Deklaration folgendermaßen initialisieren:You can also initialize the array upon declaration like this:

    int[][] jaggedArray2 = new int[][] 
{
    new int[] {1,3,5,7,9},
    new int[] {0,2,4,6},
    new int[] {11,22}
};

Sie können folgende Kurzformen verwenden.You can use the following shorthand form. Beachten Sie, dass der Operator new bei der Initialisierung der Elemente nicht ausgelassen werden kann, da es für die Elemente keine Standardinitialisierung gibt:Notice that you cannot omit the new operator from the elements initialization because there is no default initialization for the elements:

    int[][] jaggedArray3 = 
{
    new int[] {1,3,5,7,9},
    new int[] {0,2,4,6},
    new int[] {11,22}
};

Ein verzweigtes Array ist ein Array von Arrays, und deshalb sind seine Elemente Referenztypen und werden mit null initialisiert.A jagged array is an array of arrays, and therefore its elements are reference types and are initialized to null.

In den folgenden Beispielen wird veranschaulicht, wie Sie auf einzelne Arrayelemente zugreifen können:You can access individual array elements like these examples:

// Assign 77 to the second element ([1]) of the first array ([0]):
jaggedArray3[0][1] = 77;

// Assign 88 to the second element ([1]) of the third array ([2]):
jaggedArray3[2][1] = 88;

Es ist möglich, verzweigte und mehrdimensionale Arrays zu mischen.It is possible to mix jagged and multidimensional arrays. Das folgende Beispiel zeigt die Deklaration und Initialisierung eines eindimensionalen verzweigten Arrays, das drei zweidimensionale Arrayelemente unterschiedlicher Größe enthält.The following is a declaration and initialization of a single-dimensional jagged array that contains three two-dimensional array elements of different sizes. Weitere Informationen zu zweidimensionalen Arrays finden Sie unter Mehrdimensionale Arrays.For more information about two-dimensional arrays, see Multidimensional Arrays.

int[][,] jaggedArray4 = new int[3][,] 
{
    new int[,] { {1,3}, {5,7} },
    new int[,] { {0,2}, {4,6}, {8,10} },
    new int[,] { {11,22}, {99,88}, {0,9} } 
};

Im folgenden Beispiel wird dargestellt, wie Sie auf einzelne Elemente zugreifen können. Der Wert des Elements [1,0] des ersten Arrays (Wert 5) wird angezeigt:You can access individual elements as shown in this example, which displays the value of the element [1,0] of the first array (value 5):

System.Console.Write("{0}", jaggedArray4[0][1, 0]);

Die Methode Length gibt die Anzahl der Arrays zurück, die im verzweigten Array enthalten sind.The method Length returns the number of arrays contained in the jagged array. Wenn Sie beispielsweise das vorherige Array deklariert haben, dann gibt die folgende Zeile:For example, assuming you have declared the previous array, this line:

System.Console.WriteLine(jaggedArray4.Length);

den Wert 3 zurück.returns a value of 3.

BeispielExample

In diesem Beispiel wird ein Array erstellt, dessen Elemente wiederum selbst Arrays sind.This example builds an array whose elements are themselves arrays. Jedes Arrayelement hat eine unterschiedliche Größe.Each one of the array elements has a different size.

class ArrayTest
{
    static void Main()
    {
        // Declare the array of two elements:
        int[][] arr = new int[2][];

        // Initialize the elements:
        arr[0] = new int[5] { 1, 3, 5, 7, 9 };
        arr[1] = new int[4] { 2, 4, 6, 8 };

        // Display the array elements:
        for (int i = 0; i < arr.Length; i++)
        {
            System.Console.Write("Element({0}): ", i);

            for (int j = 0; j < arr[i].Length; j++)
            {
                System.Console.Write("{0}{1}", arr[i][j], j == (arr[i].Length - 1) ? "" : " ");
            }
            System.Console.WriteLine();            
        }
        // Keep the console window open in debug mode.
        System.Console.WriteLine("Press any key to exit.");
        System.Console.ReadKey();
    }
}
/* Output:
    Element(0): 1 3 5 7 9
    Element(1): 2 4 6 8
*/

Siehe auchSee Also

Array
C#-ProgrammierhandbuchC# Programming Guide
ArraysArrays
Eindimensionale ArraysSingle-Dimensional Arrays
Mehrdimensionale ArraysMultidimensional Arrays