Share via


Tableaux en escalier (Guide de programmation C#)

Un tableau en escalier est un tableau dont les éléments sont des tableaux. Les éléments d'un tableau en escalier peuvent être de dimensions et de tailles différentes. Un tableau en escalier est parfois appelé « tableau de tableaux ». Les exemples suivants indiquent comment déclarer, initialiser et accéder à des tableaux en escalier.

L'exemple suivant est une déclaration de tableau à une dimension qui possède trois éléments, chacun étant un tableau unidimensionnel d'entiers :

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

Avant de pouvoir utiliser jaggedArray, vous devez initialiser ses éléments. Vous pouvez procéder ainsi :

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

Chaque élément est un tableau unidimensionnel d'entiers. Le premier élément est un tableau de cinq entiers, le deuxième est un tableau de quatre entiers et le troisième est un tableau de deux entiers.

Il est également possible d'utiliser des initialiseurs pour attribuer des valeurs aux éléments du tableau, auquel cas vous n'avez pas besoin de la taille du tableau. Par exemple :

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

Vous pouvez également initialiser le tableau dans la déclaration, comme ceci :

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

Vous pouvez utiliser la forme abrégée suivante. Vous ne pouvez pas omettre l'opérateur new dans les éléments d'initialisation car aucune initialisation n'est prévue par défaut pour eux :

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

Un tableau en escalier est un tableau de tableaux, et par conséquent ses éléments sont des types référence et sont initialisés à null.

Vous pouvez accéder aux différents éléments du tableau comme dans ces exemples :

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

Il est possible de combiner tableaux en escalier et tableaux multidimensionnels. Ce qui suit est une déclaration et une initialisation d'un tableau en escalier unidimensionnel qui contient trois éléments de tableau à deux dimensions de tailles différentes : Pour plus d'informations sur les tableaux à deux dimensions, consultez Tableaux multidimensionnels (Guide de programmation C#).

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

Vous avez accès aux différents éléments comme le montre cet exemple, qui affiche la valeur de l'élément [1,0] du premier tableau (valeur 5) :

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

La méthode Length retourne le nombre de tableaux contenu dans le tableau en escalier. Par exemple, si vous avez déclaré le tableau précédent, cette ligne :

System.Console.WriteLine(jaggedArray4.Length);

retourne la valeur 3.

Exemple

Cet exemple génère un tableau, dont les éléments sont eux-mêmes des tableaux. Chacun des éléments du tableau a une taille différente.

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

Voir aussi

Référence

Tableaux (guide de programmation C#)

Tableaux unidimensionnels (Guide de programmation C#)

Tableaux multidimensionnels (Guide de programmation C#)

Array

Concepts

Guide de programmation C#