TableauxArrays

Un tableau est une structure de données qui contient un certain nombre de variables qui sont accessibles par des indices calculés.An array is a data structure that contains a number of variables that are accessed through computed indices. Les variables contenues dans un tableau, également appelé éléments du tableau, sont tous du même type, et ce type est appelé type d’élément du tableau.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.

Les types tableau sont des types référence, et la déclaration d’une variable tableau réserve simplement un espace pour une référence à une instance de tableau.Array types are reference types, and the declaration of an array variable simply sets aside space for a reference to an array instance. Les instances de tableau réelles sont créées dynamiquement lors de l’exécution à l’aide de l’opérateur new.Actual array instances are created dynamically at runtime using the new operator. La nouvelle opération spécifie la longueur de la nouvelle instance de tableau, qui est ensuite fixée pour la durée de vie de l’instance.The new operation specifies the length of the new array instance, which is then fixed for the lifetime of the instance. Les indices des éléments d’un tableau vont de 0 à Length - 1.The indices of the elements of an array range from 0 to Length - 1. L’opérateur new initialise automatiquement les éléments d’un tableau à leur valeur par défaut, c'est-à-dire, par exemple, zéro pour tous les types numériques et null pour tous les types référence.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.

L’exemple suivant crée un tableau de int éléments, initialise le tableau et imprime le contenu du tableau.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]}");
        }
    }
}

Cet exemple crée et utilise un tableau unidimensionnel.This example creates and operates on a single-dimensional array. C# prend également en charge les tableaux multidimensionnels.C# also supports multi-dimensional arrays. Le nombre de dimensions d’un type tableau, également appelé rang du type tableau, est de un plus le nombre de virgules entre les crochets du type tableau.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. L’exemple suivant alloue respectivement des tableaux à une seule, deux et trois dimensions, respectivement.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];

Le tableau a1 contient 10 éléments, le tableau a2 en contient 50 (10 x 5) et le tableau a3 en contient 100 (10 × 5 × 2).The a1 array contains 10 elements, the a2 array contains 50 (10 × 5) elements, and the a3 array contains 100 (10 × 5 × 2) elements. Le type d’élément d’un tableau peut être de n’importe quel type, y compris un type tableau.The element type of an array can be any type, including an array type. Un tableau avec des éléments d’un type tableau est parfois appelé un tableau en escalier, car les longueurs des tableaux d’éléments ne sont pas nécessairement pas les mêmes.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. L’exemple suivant alloue un tableau de tableaux de int :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];

La première ligne crée un tableau avec trois éléments, chacun de type int[] et chacun avec une valeur initiale de null.The first line creates an array with three elements, each of type int[] and each with an initial value of null. Les lignes suivantes initialisent ensuite les trois éléments avec des références aux instances individuelles de tableau de longueur variable.The subsequent lines then initialize the three elements with references to individual array instances of varying lengths.

L’opérateur new autorise la spécification des valeurs initiales des éléments du tableau en utilisant un initialiseur de tableau, qui est une liste d’expressions écrites entre les délimiteurs { et }.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 }. L’exemple suivant alloue et initialise un int[] avec trois éléments.The following example allocates and initializes an int[] with three elements.

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

Notez que la longueur du tableau est déduite à partir du nombre d’expressions entre { et }.Note that the length of the array is inferred from the number of expressions between { and }. Les déclarations locales des champs et variables peuvent être abrégées davantage afin de ne pas avoir à redéclarer le type tableau.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};

Les deux exemples précédents sont équivalents à ce qui suit :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;