Verzweigte Arrays (C#-Programmierhandbuch)

Aktualisiert: November 2007

Ein verzweigtes Array ist ein Array, dessen Elemente wiederum Arrays sind. Die Elemente eines verzweigten Arrays können über unterschiedliche Dimensionen und Größen verfügen. Ein verzweigtes Array wird manchmal auch als "Array von Arrays" bezeichnet. Die folgenden Beispiele zeigen, wie verzweigte Arrays deklariert und initialisiert werden und wie auf sie zugegriffen wird.

Im Folgenden sehen Sie die Deklaration eines eindimensionalen Arrays mit drei Elementen, von denen jedes ein eindimensionales Array von ganzen Zahlen darstellt:

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

Bevor Sie jaggedArray verwenden können, müssen die Elemente des Arrays initialisiert werden. Sie können die Elemente wie folgt initialisieren:

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

Jedes Element ist ein eindimensionales Array von ganzen Zahlen. Alle Elemente sind Arrays. Das erste verfügt über 5, das zweite über 4 und das dritte über 2 ganze Zahlen.

Es besteht auch die Möglichkeit, Initialisierungen zu verwenden, um die Arrayelemente mit Werten aufzufüllen. In diesem Fall ist die Arraygröße nicht erforderlich. Beispiel:

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

Das Array kann auch, wie im Folgenden dargestellt, während der Deklaration initialisiert werden:

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

Sie können die folgende Kurzform verwenden. Beachten Sie, dass Sie den Operator new bei der Initialisierung der Elemente nicht weglassen können, weil es für die Elemente keine Standardinitialisierung gibt:

    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 Verweistypen und werden mit null initialisiert.

In den folgenden Beispielen wird veranschaulicht, wie der Zugriff auf einzelne Arrayelemente erfolgt:

// 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;

Verzweigte und mehrdimensionale Arrays können auch kombiniert werden. Im Folgenden sehen Sie die Deklaration und Initialisierung eines eindimensionalen verzweigten Arrays, das zweidimensionale Arrayelemente unterschiedlicher Größe enthält:

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 von Element [1,0] des ersten Arrays wird angezeigt (Wert 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. Angenommen, Sie hätten das vorherige Array deklariert, dann gibt die Zeile:

System.Console.WriteLine(jaggedArray4.Length);

Gibt einen Wert von 3 zurück.

Beispiel

In diesem Beispiel wird ein Array erstellt, dessen Elemente selbst Arrays sind. Jedes Arrayelement hat eine andere Größe.

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 auch

Konzepte

C#-Programmierhandbuch

Referenz

Arrays (C#-Programmierhandbuch)

Eindimensionale Arrays (C#-Programmierhandbuch)

Mehrdimensionale Arrays (C#-Programmierhandbuch)

Array